我遇到了一个大问题:在方法didSelectRowAtIndexPath
上,我总是将null变为self.navigationController。我有一个UIViewController,它包含一个UIsegmentedControl和一个subView。在此子视图上,我为所选的每个段添加控制器。对于每个片段,都有一个tableview。这是问题所在:当我从这个tableview中选择一行时,我无法推送下一个控制器,因为self.navigationController为null。
请帮帮我..这是我的代码:http://pastebin.com/qq0vf7mq
没有代码:
navigationTelephone=[[UINavigationController alloc] init];
[self.view addSubview:self.navigationTelephone.view];
[self.navigationTelephone setNavigationBarHidden:YES];
[self.view addSubview:tableViewTelephone];
答案 0 :(得分:0)
我认为你已经初始化了UINavigationController,如下所示
[[UINavigationController alloc] initWithRootViewController:ViewControllerOBj]
答案 1 :(得分:0)
更新:
您初始化实例变量navigationTelephone
并显示它,但您使用self.navigationController
来推送!
请改用[navigationTelephone push...]
答案 2 :(得分:0)
试试这个:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
myAudiPhoneInputViewController *myViewController = [[myAudiPhoneViewController alloc] initWithNibName:@"NIB NAME HERE" bundile:nil];
self.myaudiPhoneInputViewController = myViewController;
[myViewController release];
[tableViewTelephone deselectRowAtIndexPath:indexPath animated:NO];
if(indexPath.row==0){
NSLog(@"Tel.personnel... %@",self.navigationTelephone);
[self.navigationController pushViewController:self.myaudiPhoneInputViewController animated:YES];
}
}
你没有实例化myaudiPhoneViewController,这就是为什么它没有推动视图。
答案 3 :(得分:0)
只需通过更改
进行检查self.navigationTelephone=[[UINavigationController alloc] init];
Naveen Shan