当我点击 UITableViewCell 时,视图控制器没有被推送。
Posted
技术标签:
【中文标题】当我点击 UITableViewCell 时,视图控制器没有被推送。【英文标题】:View controller is not pushed when I tap on UITableViewCell. 【发布时间】:2014-02-17 18:45:30 【问题描述】:由于某种原因,我的导航控制器没有正确推送。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
NSLog(@"HERE!");
MyViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"myVC"];
vc.labelText = [self.myArray objectAtIndex:indexPath.row];
[self.navigationController pushViewController:vc animated:YES];
NSLog(@"Pushed");
输出是:
2014-02-17 12:41:47.187 TableViewTesting[37532:70b] HERE!
2014-02-17 12:41:47.189 TableViewTesting[37532:70b] Pushed
所以一切都运行良好,但即使在点击单元格后我仍然只能看到我的初始视图控制器。
【问题讨论】:
使用调试器确保vc
不是nil
。还要检查self.navigationController
不是nil
。
@Gavin,如果 vc 为 nil,那么他会从 instantiateViewControllerWithIdentifier 中得到一个异常。我在这里看到的唯一一件事是 self.navigationController 为 nil,这就是为什么什么也没发生。
检查你的导航控制器。您的控制器是否嵌入在导航控制器中。
【参考方案1】:
您从中调用此代码的视图控制器是否嵌入在Navigation Controller
中?如果不是,那么调用pushViewController
方法时不会发生任何事情。
转到您的Storyboard
,选择初始视图控制器,然后从顶部栏编辑器>嵌入>导航控制器再试一次。
【讨论】:
我遇到了一些其他问题,但最终这确实解决了我的问题。谢谢!以上是关于当我点击 UITableViewCell 时,视图控制器没有被推送。的主要内容,如果未能解决你的问题,请参考以下文章
点击 UITableViewCell 时 UIView 消失