按搜索按钮推视图控制器

时间:2015-09-15 14:57:15

标签: ios objective-c

Storyboard UINavigationController我用搜索栏创建了第一个屏幕 我已经通过IB向故事板添加了第二个viewcontrol

如何将第二个viewcontroller推送到navigationcontroller?

我试过了

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    [searchBar resignFirstResponder];

    ViewController *screen2 = [[ViewController alloc] initWithNibName:@"ViewController2" bundle:nil];

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

我已将第二个视图控制器的Custom Class设置为ViewController2

但是当我运行应用程序并单击键盘上的搜索按钮时,我收到以下错误

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle  (loaded)' with name 'ViewController2''

2 个答案:

答案 0 :(得分:1)

您收到的错误是因为Xcode找不到名为ViewController2的xib

您可以致电self.performSegueWithIdentifier(@"identifierToViewController")

但首先要确保你的searchViewController是UINavigationController的一个孩子enter image description here

然后确保segue具有正确的标识符: enter image description here

答案 1 :(得分:0)

首先确保您的第二个视图控制器类名是:ViewController2

之后在storyboard中将View Controller的类名和Storyboard Id作为@“ViewController2”,请参考屏幕截图。

enter image description here

实际上,您使用错误的方法来创建UIViewController的实例,因为它在您使用xib文件时使用。

更改您的代码:

    ViewController2 *screen2 = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController2"];

[self.navigationController pushViewController:screen2 animated:YES];