2009-12-22 77 views
0

我有來電顯示上的視圖的事件,但 - 每次被稱爲時間預期viewdidload事件沒有出現。下面是我用它來調用它的方法...presentModalViewController viewDidLoad中沒有被調用

[self presentModalViewController:addItemViewController animated:YES]; 

那麼addItemViewController內,該方法是

- (void)viewDidLoad { 
    NSLog(@"alright, lad!"); 
} 

要關閉視圖,我與代碼

- (IBAction)cancel { 
    [self dismissModalViewControllerAnimated:YES]; 
} 
按鈕

第一次出現視圖時會顯示「好的,夥計」日誌,但在啓動時不會再次顯示。有沒有一種方法可以讓應用「忘記」視圖?或者我應該使用另一種加載方法?我試過的loadView(我認爲),但有一個空白屏幕...

感謝您的幫助!

回答

2

viewDidLoad僅在視圖首次實例化時調用。如果每次都不重新創建視圖控制器,則只會調用一次(如果發生內存警告,並且視圖未被清除,則再次調用該視圖)。您可能想要使用viewWillAppear:或viewDidAppear :.

+0

我已經試過這兩種方法也不做任何事情。我可能只需要用不同的方式來調用視圖。 – 2009-12-22 12:02:40

+0

既不被稱爲永遠? – 2009-12-22 13:08:38

+0

nope。我把所有三個事件輸出到日誌中,只有第一次出現viewdidload,然後什麼也沒有。也分別試了一下,沒有喜悅。我已經完成了一項工作,並調用了來自我的代理文件的視圖中的函數。這就是生活! 感謝您的幫助:) – 2009-12-22 13:51:37

0

確保您調用父類中的每個的那些方法,例如

- (void)viewWillAppear:(BOOL)animated { 
    NSLog(@"view appeared"); 
    [super viewWillAppear:animated]; 
} 
+0

這實際上是做什麼的? (調用超類?) – 2009-12-27 12:09:42

+0

對於其中的大部分,它是無法執行任何操作的文檔。不過,您仍然應該稱呼它,因爲這可能會在未來發生變化。 – 2009-12-27 19:01:22

相關問題