2012-05-01 59 views
2

我用單擊按鈕時觸發的IBAction成功加載了新的視圖控制器。我怎麼不能解僱我加載的視圖控制器?

-(IBAction)changeToAnotherView:(id)sender 
{ 
    if (self.newController == nil) 
    { 
     newController = [[UIViewController alloc] initWithNibName:@"NewViewController" bundle:[NSBundle mainBundle]]; 
    } 
    quizController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
    [self presentViewController:newController animated:YES completion:NULL]; 
} 

但是,我的函數返回到NewViewController.m中的舊視圖不構建。爲什麼?

- (IBAction)goBackToOldView:(id)sender 
{ 
    [self dismissWithClickedButtonIndex:0 animated:YES]; 
} 

我得到的構建錯誤是「No visible interface declares dismissWithClickedButtonIndex:animated:」。


更新:

LLDB現在輸出

"2012-04-30 21:31:56.530 Project32[10105:fb03] -[UIViewController goBackToOldView:]: unrecognized selector sent to instance 0x6c57f20 
2012-04-30 21:31:56.531 Project32[10105:fb03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController goBackToOldView:]: unrecognized selector sent to instance 0x6c57f20' 
*** First throw call stack: 
(0x1649052 0x1bfdd0a 0x164aced 0x15aff00 0x15afce2 0x164aec9 0x2d05c2 0x50bd54 0x164aec9 0x2d05c2 0x2d055a 0x375b76 0x37603f 0x3752fe 0x2f5a30 0x2f5c56 0x2dc384 0x2cfaa9 0x2536fa9 0x161d1c5 0x1582022 0x158090a 0x157fdb4 0x157fccb 0x2535879 0x253593e 0x2cda9b 0x217d 0x20e5) 
terminate called throwing an exception(lldb)" 

有趣的是,我在NewViewController實現goBackToOldView

- (IBAction)goBackToOldView:(id)sender 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 
+0

檢查,如果你確實有它在正確的地方,發表意見自dismissmodal部分.. ,並把一個NSLog(@「按鈕推」);它可能會給你同樣的錯誤,這意味着你按下的按鈕可能沒有連接到正確的操作,在界面生成器中探索它,檢查器的最後一個選項卡顯示它的連接。確保它指向具有newviewcontroler.m的控制器實施 – Pochi

+0

謝謝,你是對的!評論解僱......並用NSLog替換它(@「回去!」);'同樣失敗。這真的很奇怪。我只是從我的Nib文件拖動了該行並選擇了goBack。奇怪... –

+0

嗯,你有什麼調試建議嗎?檢查員的最後一個標籤顯示了我相信的正確功能。 –

回答

2

更改您的代碼下面,它應該正確地解僱。

-(IBAction)changeToAnotherView:(id)sender 
{ 
    if (self.newController == nil) 
    { 
     newController = [[UIViewController alloc] initWithNibName:@"NewViewController" bundle:[NSBundle mainBundle]]; 
    } 
    quizController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
    [self presentViewController:newController animated:YES]; 
} 

- (IBAction)goBackToOldView:(id)sender 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 

希望這有助於!

+0

謝謝,但是當這個IBAction被觸發時我的應用崩潰了。你知道爲什麼嗎? –

+0

@BillyGoswell你有錯誤? –

+0

我在主函數中得到了一個SIGABRT。 –

3

因爲這不是正確的功能,所以應該是。

[self dismissViewControllerAnimated:YES completion:Nil]; 

(控制器已被駁回後,您可以更換completition的零供執行一些塊。)

+0

謝謝,但帶有 - (IBAction)goBack:(id)發件人 {self dismissViewControllerAnimated:YES completion:Nil];我的應用在IBAction被觸發時崩潰。你知道爲什麼嗎? –

+0

你會得到什麼錯誤?按照你的要求寫下它。 – Pochi

+0

謝謝,我的主要功能是「線程1:信號SIGABRT」。 –

相關問題