2011-03-08 61 views
0

如何从当前视图移动到另一个视图?我目前的观点是viewcontroller,我想移动另一个视图控制器。这是我的代码..移动到UITableView行选择的另一个视图

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    SecondView *secondView = [[SecondView alloc] initWithNibName:@"second" bundle:[NSBundle mainBundle]]; 
    [self.navigationController pushViewController:secondView animated:YES]; 
} 

我使用xib文件作为另一个视图。

+0

什么是SecondView? (一个视图控制器,或?) – 2011-03-08 11:51:00

+0

第二个视图是另一个UIViewController。 – Maulik 2011-03-08 11:53:22

+0

你为什么要专门调用initWithNibName:bundle:? (默认情况下,调用init将包含类似于'if(self = [super initWithNibName:nil bundle:nil]){'这会为你加载nib。“ – 2011-03-08 11:55:02

回答

1

确保有关笔尖文件名,并设置捆绑:无

好确保在Interface Builder为你的第二个视图控制器,你可以使用合适的类挂钩正确。

请清理所有目标,然后构建并运行应用程序。

+0

我试过了,但仍然没有出现第二个视图... – Maulik 2011-03-08 11:49:11

+0

ya它的SecondView只有 – Maulik 2011-03-08 12:19:42

1

您可能会混淆视图和视图控制器。视图控制器管理视图,但它绝对不是视图,反之亦然。如果你的“SecondView”实际上是一个视图控制器(即它继承自UIViewController),那么你的代码是正确的。

+0

是的,它继承自UIViewController,但仍然没有出现第二个视图 – Maulik 2011-03-08 11:48:05

+0

有些事情要检查:self.navigationController nil?nib名称是否正确?(注意:大小写很重要 - iOS文件系统区分大小写。) – Caleb 2011-03-08 11:57:42

0

最简单的解决方案可能是使用UINavigationController,因为这样可以让您按需要将视图推送到“堆栈”,并且还会自动处理删除视图/添加导航回按钮等

这就是说,我建议阅读上面的类参考,因为您的代码有一些问题。 (例如,在添加视图控制器后,您不会执行[secondView release];)。我认为“secondView”也是视图控制器,而不仅仅是视图? (你推控制器到堆栈中,没有意见。)

0

一些注意事项:

  • 你泄露secondView,自动释放它
  • 束大概可以是零
  • 有什么不好的代码?
+0

没有错误...但第二个视图不显示... – Maulik 2011-03-08 11:49:53

相关问题