簡體   English   中英

我可以在viewDidLoad之外的故事板中初始化iPhone應用程序中的內容嗎?

[英]Can I initialize something in an iPhone app with a storyboard outside of viewDidLoad?

我有一個iPhone應用程序,它包含兩個視圖控制器; 一個主要的,一個帶有幫助屏幕。 每個人都有一個按鈕,可以執行從一個到另一個的segue。

我遇到的問題是,當我從幫助屏幕回到主屏幕時,主視圖控制器的viewDidLoad方法被調用,因此重復啟動應用程序時所做的所有初始化。 在視圖控制器中是否有另一個方法只被調用一次,我可以在那里進行初始化?

我的第一個想法是,“有一個最初設置為false的布爾變量,然后讓viewDidLoad測試它,如果它是false,則進行初始化,然后將其設置為true” - 但是如何將其初始化為false第一名?

我的猜測是你正在做一個“Push”segue(這是在iOS應用程序中可以做的最標准的segue),如果你使用的是“Push”segue,這意味着你的導航控制器就在你的應用程序。

這里最好的辦法是不要將另一個“主”視圖控制器推到其他視圖控制器的堆棧上(這就是為什么每次推動主視圖時都會看到“ viewDidLoad ”),而是當你點擊“轉到幫助屏幕中的主“按鈕”, 彈出幫助屏幕並返回上一個屏幕。 執行此操作的調用是UINavigationController的popViewControllerAnimated方法。

這樣做意味着該視圖控制器上的“ viewDidLoad ”只會被調用一次,因為主視圖會被加載一次。

在.m類文件上創建一個@implementaition上的bool:

@implementation yourClass{

    bool initialize = 0;
}

然后測試它在視圖上加載:

-(void)viewDidLoad{

    if(initialize == 0){

    //do everything you need to do

    initialize = 1;

    }
}

我認為它會起作用......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM