从外部代理推送View Controller

时间:2013-06-08 18:23:11

标签: ios objective-c cocoa-touch

我有两节课; MasterViewUIViewController,显示我的TableView和MyClass,由于各种原因,它充当TableView的委托和数据源。我需要在选择单元格时推送视图控制器(DetailView)。如何从MyClass推送视图?这就是我真正拥有的:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

if (!detailViewController) {
    detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
}

//Somehow push detailViewController
}

3 个答案:

答案 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];