为什么我不能解除我加载的视图控制器?

时间:2012-05-01 00:48:26

标签: objective-c ios

我使用此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];
}

2 个答案:

答案 0 :(得分:3)

因为这不是正确的功能,所以应该是。

[self dismissViewControllerAnimated:YES completion:Nil];

(你可以在一个块的completition上替换nil,以便在解除控制器后执行某些操作。)

答案 1 :(得分: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];
}

希望这有帮助!