我以编程方式创建了一个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”。
我在这里做错了什么?
答案 0 :(得分:4)
更改您的代码:
UIBarButtonItem *foundButton = [[UIBarButtonItem alloc]
initWithTitle:@"Found it!"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(foundView:)];
您在选择器:
之后忘记了foundView
,因此您不会调用该方法。
答案 1 :(得分:1)
您可以从segue
到ViewControllerA
创建ViewControllerB
。请注意,此segue
连接两个视图控制器。不是视图控制器的按钮。现在,在故事板上,为 segue 指定一个描述性名称。例如:segueFoundView
。
现在,这样做:
-(void)foundView:(id)sender {
[self performSegueWithIdentifier:@"segueFoundView" sender:self];
}
编辑:更正后的拼写