无法将视图推入堆栈

时间:2010-09-01 15:17:19

标签: objective-c ipad

我有一个视图控制器:

@interface DetailViewController : UIViewController

它显示一张地图,并将图钉放在此地图上。当用户点击附件按钮时,我希望另一个视图中的一个注释视图被推到用户面前。

由于某些或其他原因,当我运行以下代码时导航控制器始终为空。

hotelDetailViewController = [[HotelDetailViewController alloc] initWithNibName:@"HotelDetailViewController"
                                                                        bundle:nil];

if (![self navigationController])
{
    NSLog(@"navigation controller null");
}

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

我做错了什么?在什么时候我需要分配和初始化导航控制器,因为它似乎只读?

1 个答案:

答案 0 :(得分:4)

  

我需要在什么时候分配并初始化导航控制器,因为它似乎只读?

好吧,你通常不会自己设置navigationController属性,你通常会从一开始就设置一个导航控制器,然后将你的DetailViewController传递给导航控制器,那就是财产设定。

View Controllers编程指南中有关Navigation Controllers的部分介绍了如何使用nib文件或以编程方式设置导航控制器。