2013-08-05 169 views
-2

我知道這絕對是重複的,但沒有爲我工作。現在這是一個非常簡單的任務,但我無法弄清楚。我所要做的就是在按鈕按下時打開一個新的視圖。當我點擊按鈕崩潰打開新視圖iOS應用程序

ViewController.m

- (IBAction)buttonTapped:(id)sender { 
    UIViewController *WebViewController = [[UIViewController alloc]initWithNibName:@"WebViewController" bundle:nil]; 

    [self presentViewController:WebViewController animated:YES completion: nil]; 
} 

錯誤

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x9829be0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key webView.' 
+0

您的控制器(ViewController)需要嵌入到導航控制器中。 – rdelmar

+0

@rdelmar:人們會怎麼想,找不到任何好的資源。 – user1658819

+0

-1(「這個問題沒有顯示任何研究工作」)爲「找不到任何好資源」;網絡充滿了豐富的資源,您的本地或網上書店也是如此。另外對於「崩潰」而不提供崩潰日誌或錯誤消息。 – Caleb

回答

2

你還沒有給我們很多東西,但一個有教養的猜測是,你已經指定了一些UIViewController子類作爲你的.xib文件中文件所有者代理的類,並且你已經連接了一個或文件所有者中出口的.xib中的更多對象。然而,在你的代碼中,你正在實例化UIViewController而不是你的子類。 UIViewController沒有與你的子類相同的一組插座,所以當.xib加載機制試圖將對象從.xib連接到你的視圖控制器時,它會拋出一個異常,因爲UIViewController對於一個密鑰不是KVC兼容的名稱作爲您的店鋪之一)或缺少選擇器。

一個很好的開始是在運行程序時在Xcode的控制檯中查找。如果您的應用崩潰,您應該在那裏看到一條錯誤消息。

您還應該在Xcode的Breakpoints Navigator中使用add a breakpoint for All Exceptions,以便在拋出異常時中斷。

您可以從Xcode的Organizer window中的設備中獲取崩潰日誌,這些通常會爲您提供堆棧跟蹤,以及您的應用崩潰的原因。

0

是您buttonTapped方法實際上迷上了你想點擊該按鈕?

self.navigationControllernil,還是不是?

以上是兩種可能性。你可以使用像NSLog()這樣的東西來回答這兩個問題。

+0

我的buttonTapped方法被連接起來,用NSLog()確認。登錄self.navigationController不會產生任何輸出。 – user1658819