2010-04-19 104 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]; 

我不知道......