我有一个iPhone应用程序,它包含两个View Controllers;一个主要的,一个带有帮助屏幕。每个人都有一个按钮,可以执行从一个到另一个的segue。
我遇到的问题是,当我从帮助屏幕回到主屏幕时,主视图控制器的viewDidLoad方法被调用,因此重复启动应用程序时所做的所有初始化。在视图控制器中是否有另一个方法被调用一次,我可以在哪里进行初始化?
我的第一个想法是,“有一个最初设置为false的布尔变量,然后让viewDidLoad测试它,如果它是false,则进行初始化,然后将其设置为true” - 但是如何将其初始化为首先是假的?
答案 0 :(得分:2)
我的猜测是你正在做一个" Push" segue(这是在iOS应用程序中可以做的最标准的segue类型),如果你正在使用" Push" segue表示您的应用程序中有导航控制器。
最好这里要做的事情不是推动另一个" Main"将控制器查看到其他视图控制器的堆栈上(这就是为什么你看到" viewDidLoad
"每次推动主视图时调用),而是当你点击" go时主要"帮助屏幕中的按钮,弹出关闭帮助屏幕并返回上一个屏幕。执行此操作的调用是UINavigationController' popViewControllerAnimated
方法。
这样做意味着" viewDidLoad
"在该视图控制器上只调用一次,因为主视图被加载一次。
答案 1 :(得分:1)
在@implementaition
上创建一个bool:
@implementation yourClass{
bool initialize = 0;
}
然后在视图上测试它加载:
-(void)viewDidLoad{
if(initialize == 0){
//do everything you need to do
initialize = 1;
}
}
我认为它会起作用......