2014-03-19 57 views
0

我得到一個警告「嘗試呈現其視圖不在Windows層次結構中的ViewController ..」來來去去。雖然所有的工作都要計劃,但我不喜歡警告,所以我想更好地理解從VC到另一個VC的所有可用方式。iOS不同的方式從一個VC到另一個

我知道3種方式,請糾正我,如果我錯了。

1-我使用一個動作在VC1中創建一個按鈕。我從創建到VC1 VC2一個賽格瑞一個名稱(這裏VC1ToVC2)和我的操作方法,我稱之爲SEGUE:

[self performSegueWithIdentifier:@"VC1ToVC2" sender:self]; 

2 - 我在VC1,並從該按鈕創建一個按鈕,我創建了一個Segue公司直接到VC2。

3-我在VC1中用動作創建一個按鈕。我要確保我的VC2有一個故事板的名稱,然後我寫在我的行動:

UIViewController *svc = [self.storyboard instantiateViewControllerWithIdentifier: @"VC2"]; 
[self presentViewController:svc animated:YES completion:nil]; 

我的印象是,3路主要是用來「去的地方」,然後「回來」了同一個地方與

[self dismissViewControllerAnimated:YES completion: nil]; 

喜歡當uisng幫助例如。

way1和way2的區別是什麼?我嘗試了兩個,他們都工作。

這三種方式之一是否更容易導致「窗口層級...」消息?

如果沒有我做任何事情,這樣的信息如何來去?這使得難以跟蹤。

任何幫助將不勝感激。謝謝。

回答

0

差異:

1)SequebindedUIObject和需要perform custom triggering然後performSegueWithIdentifier使用哪個triggers seque

2)Seque被綁定與UIButton所以triggeringdoneseque performed

+0

謝謝王子的清晰解釋。 其中一個比另一個更好嗎? 哪一個有更多的「機會」導致窗口層次結構問題,或者它與它無關? – Clararhea

+0

它與窗口層次結構問題無關如何根據需求顯示視圖控制器的方法 –

+0

任何想法爲什麼警告「嘗試呈現其視圖不在Windows層次結構中的ViewController ..」來來去去,Prince? – Clararhea

相關問題