2013-07-16 38 views
0

我試圖將我的應用程序轉換爲故事板,但遇到一些問題。 在之前的模型中,我可以在我需要彈出視圖時調用AppDelegate中的'actionClass'。從AppDelegate觸發一個seque以彈出StoryBoard中的視圖

E.g.

DOArticleViewController *articleView = [[DOArticleViewController alloc] initWithArticle:article notification: notification nibName:@"DOArticleViewController" bundle:nil]; 
[[self navigationController] pushViewController:articleView animated:YES]; 

但現在與故事板它不再工作了。 然後我試圖在AppDelegate中下面的代碼:

id currentController = [[[[self window] rootViewController] navigationController] visibleViewController]; 
[currentController performSegueWithIdentifier:@"settingsSeque" sender:nil]; 

不;噸覺得這是最好的,無論如何,因爲只有RootViewController的具有所需的所有seques,並可能不是visibleViewController,而是一步一個腳印時間。

有了這個,我看到發生的唯一的事情就是該消息並沒有施加作用:

不平衡通話開始/結束的外觀轉換爲UINavigationController的:0xb428e00。

我花了看法小時現在試圖找出得到這個工作,但我意識到,這可能是更好的回到了傳統的獨立XIB文件....

+0

我個人發現故事板是一個巨大的痛苦,不適用於複雜導航流的應用程序。我會看看這些利弊分析: http://stackoverflow.com/questions/10872090/pros-and-cons-of-using-storyboards http://blog.waynehartman.com/archive/2012/01 /07/uistoryboard-on-ios-5-the-good-the-bad-and-the.aspx 聽起來就像你正試圖通過回調App Delegate從應用程序中的任何位置執行segue? Segue屬於導航控制器還是文章控制器? –

+0

seque當前駐留在rootviewcontroller中,如果調用,它也是可見視圖。但它似乎並不奏效。我喜歡故事板,因爲如果清晰的概述和原始表單元格。但也許我應該決定把它稱爲損失並恢復我的更改。通過一個可憐的人。你直接在導航控制器上調用icm一個故事板? –

+0

故事板很不錯,因爲它們會給你一個很棒的應用程序概覽和其他一些不錯的功能,但在嘗試定製事物時會很快變得很痛苦。從錯誤中,它聽起來像你的segue被激活,但是然後navigationController被告知在完成之前做另一個轉換。也許在settingsSegue控制器中放置一些斷點,看看它是否被適當地分離。 (UIStoryboardSegue *)segue發件人:(id)發件人 –

回答

0

我解決與這個問題給出的答案:ios: Accessing a navigation controller from app delegate

我試圖讓導航控制器,但這是零,我沒有意識到它。 我的導航控制器是rootViewController,所以這也是NavigationController。

將rootViewController投射到NavigationController並調用'visibleViewController'後工作正常!

相關問題