1

我以编程方式创建了一个 UIBarButtonItem,并希望它在被推送时转到下一个 ViewController。

这就是我在 viewDidLoad 中创建自定义 UIBarButtonItem 的方式:

  UIBarButtonItem *foundButton = [[UIBarButtonItem alloc]
                               initWithTitle:@"Found it!"
                               style:UIBarButtonItemStyleBordered
                               target:self
                               action:@selector(foundView)];

之后我创建了这个方法:

-(void)foundView:(id)sender {

 UIViewController *foundVC = [self.storyboard instantiateViewControllerWithIdentifier:@"foundView"];

 [self.navigationController pushViewController:foundVC animated:YES];
}

点击 UIBarButtonItem 后我想去的 ViewController 有一个 Storyboard ID:“foundView”。

我在这里做错了什么?

4

2 回答 2

4

像这样更改您的代码:

UIBarButtonItem *foundButton = [[UIBarButtonItem alloc]
                               initWithTitle:@"Found it!"
                               style:UIBarButtonItemStyleBordered
                               target:self
                               action:@selector(foundView:)];

您在选择器中忘记了:之后foundView,因此您不会调用该方法。

于 2013-11-13T18:55:58.940 回答
1

您可以创建一个seguefromViewControllerAViewControllerB。注意,这segue连接了两个视图控制器。不是视图控制器的按钮。现在,在情节提要上,给segue起一个描述性的名称。例如:segueFoundView

现在,这样做:

-(void)foundView:(id)sender {
    [self performSegueWithIdentifier:@"segueFoundView" sender:self];
}

编辑:更正拼写

于 2013-11-13T18:55:53.970 回答