我有两节课; MasterView
是UIViewController
,显示我的TableView和MyClass
,由于各种原因,它充当TableView的委托和数据源。我需要在选择单元格时推送视图控制器(DetailView
)。如何从MyClass推送视图?这就是我真正拥有的:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!detailViewController) {
detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
}
//Somehow push detailViewController
}
答案 0 :(得分:2)
有几种方法可以实现这一目标。我假设您已将Masterview
嵌入UINavigationController
权限中
您可以通过将引用传递给Masteriew
来访问它,然后使用:
[masterView.navigationController pushViewController:detailViewController animated:YES];
如果您的Masterview
与您的应用代表有某种关联,并且您想要访问它,您也可以使用以下行:
MainClass *appDelegate = (MainClass *)[[UIApplication sharedApplication] delegate];
答案 1 :(得分:0)
我的解决方案是在UITableViewDelegate上创建一个属性为UINavigationController,并在创建tableViewDelegate时简单地对其进行设置。看起来还好吗?
答案 2 :(得分:-1)
如果您使用的是导航控制器,请使用以下方法:
[self.navigationController pushViewController:(UIViewController *)viewController animated:(BOOL)animated];