2013-05-05 74 views
0

我使用ECSlidingViewController與兩個視圖控制器。 'detail'視圖在初始加載時顯示,'detail'視圖菜單欄上的按鈕然後顯示了'主'視圖,這是一個UITableView,就像Path和Facebook UI一樣。初始加載的UIView不是從segue

我的問題是我想在應用程序啓動時加載此詳細視圖。然後這會將一些初始數據添加到我的核心數據數據庫中,並在主視圖的UITableView中顯示一行。

如果我顯示主視圖並在菜單中選擇一行,我執行segue到詳細頁面,然後使用prepareForSegue:sender正確加載數據。

如何僅在初始加載時在詳細視圖中執行任務,而不是在通過加載加載時執行任務?

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Setup the view controllers 
    self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MainTop"]; 
    self.underLeftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"]; 
} 

回答

0

嘗試

- (void) awakeFromNib 
    { 
     //initialisation code here 
    } 

這時候,現場首先從已取消封存故事板文件只調用。

如果這樣做沒有辦法,您可以使用初始化的布爾屬性,在您的代碼第一次運行後將其設置爲TRUE。

+0

謝謝,我希望有一個穩定的解決方案,我可能從文檔中錯過了,以區分當UIViewController是否由segue創建。 – JMWhittaker 2013-05-08 07:55:52

+1

@JMWhittaker - 我相當確定API中沒有任何東西。通過'prepareForSegue'設置一個'arriveFromSegue'標誌,或者寫一個自定義的Segue,它也是這樣做的嗎? – foundry 2013-05-08 12:51:48

+0

謝謝@他是這樣的,我在文檔中找不到任何東西。你的建議很好,設置一個標誌將起作用。謝謝。 – JMWhittaker 2013-05-09 18:13:14

0

就能呈現母版視圖模式方式,而不是segueing:

背景信息

我在故事板負載主機和詳細視圖第一個視圖。

+0

呈現主視圖在這裏不是問題。它呈現良好。我想要的只是在第一次加載時運行一個方法,而不是在使用segue加載時運行。 – JMWhittaker 2013-05-05 11:28:49