2012-02-22 101 views
1

我想在驗證登錄用戶名/密碼時加載新的ViewController/View。我有以下幾點:無法實例化新控制器

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
... 
... 
ViewController *Workflow = [self.storyboard  instantiateViewControllerWithIdentifier:@"Workflow"]; 
     [self.navigationController pushViewController:Workflow animated:YES]; 

然後,在故事板,我添加了一個新的視圖控制器,拍拍上有一個新的UIView。然後,我將ViewController的標識符更改爲「Workflow」。但是,點擊這個按鈕後,什麼也沒有發生。有任何想法嗎?

回答

0

我會首先NSLog發送動作的按鈕的索引,它對於長時間警報非常有用,並使用switch語句委託方法。如果什麼都沒有發生,那麼通常沒有做任何事情。

0

聽起來好像你可能會錯過故事板中的UINavigationController。除非你的視圖控制器存在於UINavigationController中,否則pushViewController:將不起作用。

如果是這樣的話,你需要做的是:從對象庫

  • 拖動的UINavigationController的一個實例到你的故事板。刪除它附帶的根視圖控制器。
  • 在故事板上選定導航控制器後,單擊屬性檢查器上名爲「初始視圖控制器」的複選框。
  • 按住鍵盤上的Control鍵並將鼠標從導航控制器拖到第一個視圖控制器(大概是顯示警報視圖的控制器)以創建一個Segue。在發佈後出現的Storyboard Segues框中,選擇「Relationship - Root View Controller」
+0

感謝您的簡潔回覆。我已經將一個導航控制器作爲根控制器添加到了我正在使用的視圖中。我應該添加一個新的ViewController到導航控制器?如果我按照您所描述的方式運行程序,在按下觸發所有按鈕的按鈕後,它會凍結,並且在autorelease/ return UIApplicationMain(argc,argv,nil,NSStringFromClass([AppDelegate class] )); 我的main.m.中的代碼行 – DrTchocky 2012-02-22 01:57:04

+0

我應該注意到輸出結果如下: 2012-02-21 18:11:22.331 HMG [14991:f803] ***由於未捕獲的異常'NSInvalidArgumentException'而終止應用程序,原因是:'推動導航控制器不受支持' – DrTchocky 2012-02-22 02:12:01

+0

導航控制器應該是您的APP的初始視圖控制器,即故事板中的第一個箭頭應指向此視圖控制器,並且複選框是屬性檢查器中的初始視圖控制器應檢查(即說,做同樣的事情的兩種方式。)你應該推動你的自定義視圖控制器(在你的例子中'工作流程')。它本身不應該是一個導航控制器。 – jonkroll 2012-02-22 06:26:09

相關問題