2010-04-19 222 views
0

爲什麼不能使用?Navigationcontroller - 爲什麼不能正常工作?

View1加載View2。
在視圖2:

- (void) goToView { 
    View3 *plainText = [[View3 alloc] 
          initWithNibName:@"View3" bundle:nil]; 

     [self.navigationController pushViewController:plainText animated: NO]; 
     [plainText release]; 
    } 

- (void)viewDidLoad { 
     [self goToView]; 
     [super viewDidLoad]; 
    } 

這不會觸發navigationController到pushView,但如果我添加一個按鈕和的setAction(goToView),它完美的作品。我在這裏錯過了什麼樣的問題?

+0

這個帖子在社區維基不屬於。 – lugte098 2010-04-19 10:20:39

+0

(有沒有un-wiki) – 2010-04-19 11:44:26

回答

1

嘗試把你的調用goToView在viewDidAppear而不是viewDidLoad?

- (void) viewDidAppear:(bool)animated { 
    [super viewdidAppear:animated]; 
    [self goToView]; 
} 
+0

它做了這項工作。謝謝 – f0rz 2010-04-19 11:17:04

+0

使用'viewDidLoad'而不是'viewDidAppear:'這是一個常見的錯誤。這會導致問題,因爲'viewDidLoad'僅在從nib首次加載視圖時纔會調用。如果你初始化一個視圖,它永遠不會被調用,並且每當視圖被隨後使用時都不會調用它,除非視圖完全從內存中卸載。 – TechZen 2010-04-19 13:29:32

0
[self goToView]; 
[super viewDidLoad]; 

嘗試交換這2行..即

[super viewDidLoad]; 
[self goToView]; 

我不知道......