2011-01-12 86 views
0

這是,當一個按鈕,在該顯示模態對話框的ViewController視圖被點擊時執行的代碼:viewWillAppear中不叫

-(IBAction)presentModally:(id)sender { 

if (self.nvc == nil) { 
MyModalViewController *vc = [[MyModalViewController alloc] init]; 
UINavigationController *navvc = [[UINavigationController alloc] initWithRootViewController:vc]; 
navvc.navigationItem.prompt = @""; 
navvc.navigationBar.barStyle = UIBarStyleBlack; 
[vc release]; 
self.nvc = navvc; 
[navvc release]; 
} 
} 

[自我presentModalViewController:self.nvc動畫:YES];

如果一切正常,則每次出現視圖時都應該啓動此代碼。

- (void)viewDidLoad { 
[super viewDidLoad]; 

NSLog(@"test"); 
} 

當我評論檢查Ivar是否爲nil的if語句時,調用方法viewWillAppear。有任何想法嗎?

+0

你是否爲`if`選擇了一個右括號?正如所寫,只有一個右括號。另外,也用`viewWillAppear`來代碼。他們在文件中彼此相鄰嗎? – 2011-01-12 21:52:48

回答

3

安德烈亞斯,

不知道,如果你感到困惑的viewDidLoad和viewWillAppear中嗎?每次出現視圖時,您的viewDidLoad代碼都不會被調用,僅在加載時纔會調用。

另外,顯示一個導航控制器作爲模態視圖對我來說似乎是一件很奇怪的事情 - 模態視圖的重點在於阻止用戶在完成某些任務時導航,比如發送電子郵件鏈接,然後他們解散它並回到他們所在的位置。

+0

使用UINavigationController是因爲我在底部有一個工具欄。我想用導航控制器實現這個功能的堆棧。 – LuckyLuke 2011-01-12 22:22:27

相關問題