亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

IBOutlet為零,但已連接到情節提要中,Swift

IBOutlet為零,但已連接到情節提要中,Swift

幕布斯7119047 2019-11-30 15:03:55
使用Swift 1.1和Xcode 6.2。我有一個UIStoryboard,其中包含一個單一的自定義UIViewController子類。在它上面,我有一個從該控制器到情節提要上的子類@IBOutlet的類型連接。對于該視圖的子視圖,我也有類似的渠道。見圖A。UIViewUIView但是在運行時,這些屬性為零(圖B)。即使我確信我已經連接了Interface Builder中的插座。想法:是否有可能因為我正在使用子類的子類而使初始化混亂?我沒有重寫任何初始化程序awakeFromNib: 由于某種原因沒有被打電話也許它沒有連接到子視圖上的子視圖我嘗試過的事情:@IBOutlet完全匹配和情節提要的項目類型(而不是UIView)刪除屬性和出口并重新添加它們*中的模糊代碼Figure A為:@IBOutlet private var annotationOptionsView: UIView!@IBOutlet private var arrivingLeavingSwitch: UISegmentedControl!謝謝。
查看完整描述

3 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

通常發生這種情況是因為您的視圖控制器尚未加載其視圖層次結構。視圖控制器僅在某人向其發送view消息時才加載其視圖層次結構。當需要將視圖層次結構實際顯示在屏幕上時,系統會執行此操作,這會在諸如此類的事情發生prepareForSegue:sender:viewWillAppear:返回之后發生。

由于您的VC尚未加載其視圖層次結構,因此出口仍然為零。

您可以說來強制VC加載其視圖層次結構_ = self.view。


查看完整回答
反對 回復 2019-11-30
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

您是從情節提要或NIB實例化視圖控制器,還是直接通過初始化程序將其實例化?

如果直接用初始化程序實例化您的類,則插座將不會連接。Interface Builder創建類的自定義實例,并將這些實例編碼為NIB和Storyboard,以進行重復解碼,但它并未定義類本身。如果這是您的問題,則只需更改創建控制器的代碼,即可使用UIStoryboard或UINib上的方法。


查看完整回答
反對 回復 2019-11-30
  • 3 回答
  • 0 關注
  • 626 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號