我的故事板名为“MainStoryboard_iPhone.storyboard”,它有2个视图。第一个视图有一个带有公开按钮的表格单元格。我可以将表格单元格拖放到其他视图并显示视图,但我只需要在用户单击附件按钮而不使用segue时以编程方式执行此操作。 2个视图的名称是RootViewController和ProviderLookupViewController。目前我已经尝试过这段代码但是没有用,当我点击单元格上的附件按钮时会抛出错误。注释行是我尝试的其他内容
-(void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
UIStoryboard* sb = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone"
bundle:nil];
// ProviderLookupViewController* vc = [sb instantiateViewControllerWithIdentifier:@"ProviderLookupViewController"];
UIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"ProviderLookupViewController"];
[self presentModalViewController:vc animated:YES];
//[self.navigationController pushViewController:vc animated:YES];
}
答案 0 :(得分:3)
如果我是对的:
1)从你的问题看来,你有一个带有两个视图控制器的故事板,第一个是UITableViewController,另一个是UIViewController的子类。
2)您希望在用户点击公开按钮时显示第二个视图。
鉴于您使用故事板而不是nib文件,我建议您使用segue,它将在不编写代码的情况下解决您的问题。
表格视图单元格可以有两个segue,一个用于选择单元格,另一个用于选择附件按钮。控制从附件按钮拖动到第二个视图控制器,而不是从单元格进行控制拖动,当菜单出现时,您必须在Accesory动作下面选择一个选项而不是选择Segue
表视图的原型单元必须具有公开附件启用。从实用程序窗格(右侧)执行此操作。附件不能没有这样做。在图片中,accessoy是详细信息披露。
实用程序窗格也让你做了segue。但是,使用附件动作,图片来自我的一个项目。
答案 1 :(得分:1)
首先在您的场景中将Storyboard id 作为ProviderLookupViewController提供,并勾选使用storyboard Id
ProviderLookupViewController* vc = [self.storyboard instantiateViewControllerWithIdentifier:@"ProviderLookupViewController"];
[self presentModalViewController:vc animated:YES];
注意:ProviderLookupViewController是您的标识符。
答案 2 :(得分:-1)
在IB中从一个视图控制器创建一个segue到另一个视图控制器。添加一些识别器到segue并使用
[self performSegueWithIdentifier:@"SomeSegueName" sender:someObject];