我可以在viewDidLoad之外的故事板中初始化iPhone应用程序中的内容吗?

时间:2013-02-15 21:20:57

标签: ios storyboard

我有一个iPhone应用程序,它包含两个View Controllers;一个主要的,一个带有帮助屏幕。每个人都有一个按钮,可以执行从一个到另一个的segue。

我遇到的问题是,当我从帮助屏幕回到主屏幕时,主视图控制器的viewDidLoad方法被调用,因此重复启动应用程序时所做的所有初始化。在视图控制器中是否有另一个方法被调用一次,我可以在哪里进行初始化?

我的第一个想法是,“有一个最初设置为false的布尔变量,然后让viewDidLoad测试它,如果它是false,则进行初始化,然后将其设置为true” - 但是如何将其初始化为首先是假的?

2 个答案:

答案 0 :(得分:2)

我的猜测是你正在做一个" Push" segue(这是在iOS应用程序中可以做的最标准的segue类型),如果你正在使用" Push" segue表示您的应用程序中有导航控制器。

最好这里要做的事情不是推动另一个" Main"将控制器查看到其他视图控制器的堆栈上(这就是为什么你看到" viewDidLoad"每次推动主视图时调用),而是当你点击" go时主要"帮助屏幕中的按钮,弹出关闭帮助屏幕并返回上一个屏幕。执行此操作的调用是UINavigationController' popViewControllerAnimated方法。

这样做意味着" viewDidLoad"在该视图控制器上只调用一次,因为主视图被加载一次。

答案 1 :(得分:1)

.m类文件上的

@implementaition上创建一个bool:

@implementation yourClass{

    bool initialize = 0;
}

然后在视图上测试它加载:

-(void)viewDidLoad{

    if(initialize == 0){

    //do everything you need to do

    initialize = 1;

    }
}

我认为它会起作用......