storyboard和xib不同的人生道路

storyboard和xib不同的人生道路



從Storyboard和Xib產生的view controller其實在一開始初始化時即有著細微的差異。如上圖所示,雖然最後都會來到viewDidLoad的終點,但在之前卻各自經歷不同的人生。從Storyboard產生的view controller比較坎坷,繞了遠路,經歷initWithCoder:和awakeFromNib,從xib產生的view controller只經歷了initWithNibName:bundle:。除了呼叫method的差異,還有以下幾點需注意之處:

1. IBOutlet連結的元件要等到viewDidLoad裡才出現。
 如果我們太心急,在awakeFromNib即存取,只會空手而回,取到空氣。(nil)

2. 當記憶體不足時,viewDidUnload可能被呼叫。到時候view controller的畫面要再出現時,viewDidLoad將再度被呼叫。因此viewDidLoad可能被多次呼叫,不適合將只想做一次的事置於其中。比方計數的count變數,若是在viewDidLoad時設定初始值0,那麼當 viewDidLoad再次被呼叫時,辛苦累積多時的count就被清空了,多可惜呀。所以我們最好將設定初始值的程式碼置於initWithCoder: , awakeFromNib, initWithNibName:bundle:。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值