viewWillAppear中不叫

viewWillAppear中不叫

问题描述:

这是,当一个按钮,在该显示模态对话框的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

安德烈亚斯,

不知道,如果你感到困惑的viewDidLoad和viewWillAppear中吗?每次出现视图时,您的viewDidLoad代码都不会被调用,仅在加载时才会调用。

另外,显示一个导航控制器作为模态视图对我来说似乎是一件很奇怪的事情 - 模态视图的重点在于阻止用户在完成某些任务时导航,比如发送电子邮件链接,然后他们解散它并回到他们所在的位置。

+0

使用UINavigationController是因为我在底部有一个工具栏。我想用导航控制器实现这个功能的堆栈。 – LuckyLuke 2011-01-12 22:22:27