0

基本上我有两个xib,第一个是main xib,它包含一个触发IBAction调用的按钮:

UIViewController *overlaywindow = [[UIViewController alloc] initWithNibName:@"NewInvenView" bundle:nil];
overlaywindow.modalPresentationStyle = UIModalPresentationFormSheet;
overlaywindow.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

[self presentViewController:overlaywindow animated:YES completion:nil];

这会产生我想要的结果。

但是,在NewInvenView.xib我试图创建一个将自行关闭(并关闭 PresentingView)的按钮。我将按钮与 NewInvenViewController.h 链接并在 NewInvenViewController.m 中实现该方法。但是当我运行它时,它不起作用。

每当触发按钮时,都会调用该函数,但出现错误:

2012-12-24 20:33:50.984 Dokodemo [1467:907] *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UIViewController filterstock:]:无法识别的选择器发送到实例 0x21033990”...

我认为同样重要的是要注意,无论函数实现内部是什么,我都会收到错误。即使函数什么都不做

为什么是这样?

4

2 回答 2

0

如果你用 navigationController 做翻转动画,那会很容易。

 -(void)goToNextView:(id)sender{

          NextView *info3 = [[NextView alloc]initWithNibName:@"NextView" bundle:nil];
            UINavigationController * nvc = [[UINavigationController alloc] initWithRootViewController:info3];

            info3.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
            [self.navigationController presentModalViewController:nvc animated:YES];

        }

// 如果您使用最新版本的 iOS 只需更改以下内容

[self.navigationController presentViewController:nvc animated:YES completion:nil];

在您的第二个视图控制器中,您可以使用它来关闭。

-(IBAction)goToPrevious:(id)sender

{

[self.navigationController dismissModalViewControllerAnimated:YES];

// For latest Version

// [self.navigationController dismissViewControllerAnimated:YES completion:nil];
}
于 2012-12-24T13:56:45.003 回答
0

我认为问题与 nib 文件有关。如果您检查错误消息,它会显示-[UIViewController filterstock:]:,这意味着该消息被发送到UIViewControllernot的对象NewInvenViewController

确保从检查器窗格中的 nib 文件正确设置类。

于 2012-12-24T16:04:31.397 回答