我有一个 UIViewController 子类(比如 BBB),它继承自已经编写的自定义 UIViewController 类(比如 AAA)。BBB 类中有一个 UITableView,当用户点击 UITableView 的任何单元格时,我想推送另一个 UIViewController 类(比如 CCC)。
所以,我尝试用 BBB 的tableView: didSelectRowAtIndexPath:
方法推动 CCC 控制器。
我的代码是,
CCC *ccc = [[CCC alloc] init];
[self.navigationController pushViewController:ccc animated:YES];
[ccc release];
点击单元格时没有任何反应,因此我通过以下代码检查了 BBB 类的导航控制器。
if (self.navigationController == nil)
{
NSLog(@"Navigation controller is nil");
}
该消息已成功打印:) 所以,我试图为导航控制器分配一些东西,但我的运气不好,它是一个只读属性。
然后我尝试通过将 ccc 分配为 rootviewcontroller 来创建本地 UINavigationController,然后尝试推送该本地导航控制器。它抛出一个异常“不支持多次推送同一个视图控制器实例”。
我的问题是,
是否可以找到导航控制器在 AAA 类中获得 nil 值的位置?我没有在我的 BBB 类中将导航控制器设为 nil,并且我发现在 AAA 类中是否有任何类似“self.navigationController = nil”的语句。但没有什么是那样的。
如何推送 CCC 类?
谢谢