時,我有下面的代碼:SIGABRT訪問到剛剛創建UIViewController的視圖
- (void)func
{
MyViewController *ctrl = [MyViewController new];
[ctrl doSmth];
[self presentViewController:ctrl animated:NO];
}
//------------
- (void)doSmth
{
CGRect *rect = self.view.frame;
// Do something with rect
self.view.frame = rect;
}
好吧,我知道,當-[UIViewController view]
等於nil
那麼它的創建。而且這段代碼在我的更改之前確實有效(只有按鈕和標籤的可見性,沒有什麼特別),現在它在self.view
上拋出SIGABRT
,看起來它不能創建。突然。如果我恢復我的改變,所有工作都像魔術一樣。即使我不會調用此函數,它會在呈現時崩潰,並在摘要中顯示view = 0x00000000
。
我只有一個問題:WAT?
顯示您的loadview/viewdidload方法。 – iDev 2013-02-22 18:25:31
ctrl的視圖在您調用doSmth時尚未加載。直到它的viewDidLoad被調用,它才被加載。 – rdelmar 2013-02-22 18:27:08