![](/img/trans.png)
[英]How can I use a html link in UIWebView to push a view on to the stack?
[英]How can I reload view controllers from the appDelegate each time I push one on the stack?
目前我的应用程序有一个导航屏幕,允许用户选择其他视图。 单击时,navController只会按下相关的特定视图控制器。 如果我再也不会返回相同的视图并期望重新加载该视图,则该方法非常有用。
在下面的代码中,当请求时,我推送了一个视图控制器。
- (void)optionClicked:(NSString *)optionName
{
if ([@"First" isEqualToString:optionName]) {
[navController pushViewController:firstController animated:YES];
} else if ([@"Next" isEqualToString:optionName]) {
[navController pushViewController:nextController animated:YES];
}
}
完成视图后,我只需从堆栈中弹出它。 但是下一次用户从菜单中选择相同选项时,它不会“干净”加载,这就是我的问题所在。每次将视图控制器推入堆栈时,如何重新加载视图控制器?
您必须重新初始化viewcontroller。
if ([@"First" isEqualToString:optionName]) {
if (firstController)
{ [firstController release]; } // assuming you've got a retain on it.
firstController = [[MyViewControllerSubclass alloc] init];
[navController pushViewController:firstController animated:YES];
}
在这种情况下,我建议使用保留的属性。 @property (nonatomic, retain) MyViewControllerSubclass *firstController;
这样你就可以使用self.firstController = [[[MyViewControllerSubclass alloc] init] autorelease];
内存管理主要是为你完成的。 (尽管您仍然必须在dealloc中释放。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.