单击一行时视图不会改变 - xcode ios
Posted
技术标签:
【中文标题】单击一行时视图不会改变 - xcode ios【英文标题】:View doesn't change when clicking a row - xcode ios 【发布时间】:2014-02-21 16:04:32 【问题描述】:我在UIViewController
的容器内创建了一个UITableViewController
。
在我单击单元格以查看用户信息之前,一切正常。
当我单击该行时,应该转到包含选项卡的视图,但它没有这样做(它停留在表格的页面上)。
我知道它会调用下面的函数,因为我在其中放置了一个 NSLog,当我单击一行时它会显示出来。
有人可以帮帮我吗?谢谢!
(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
UINavigationController *tabController = [self.storyboard instantiateViewControllerWithIdentifier:@"TabNav"];
tabController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self.navigationController pushViewController:tabController animated:YES];
【问题讨论】:
【参考方案1】:打电话之前:
[self.navigationController pushViewController:tabController animated:YES];
您必须将UINavigationController
- tabController 添加到视图层次结构中。
// 扩展
试试这个:
UINavigationController *tabController = [self.storyboard instantiateViewControllerWithIdentifier:@"TabNav"];
[tabController willMoveToParentViewController:self];
//try wit this line if this will not work
//tabController.view.frame = self.view.bounds;
[self.view addSubview:tabController.view];
[self addChildViewController:tabController];
[tabController didMoveToParentViewController:self];
[self.navigationController pushViewController:tabController animated:YES];
【讨论】:
我该怎么做?我的意思是,我对之前的视图执行了相同的过程,并且效果很好...... 这个想法可行,但由于表格位于选项卡中,因此当我使用它时,它会打开我在此选项卡内调用的选项卡栏。【参考方案2】:我发现了问题!出于某种奇怪的原因,我不得不更改这些行:
UINavigationController *tabController = [self.storyboard instantiateViewControllerWithIdentifier:@"TabNav"]; tabController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; [self.navigationController pushViewController:tabController Animation:YES];
到这些行:
UIViewController *viewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil]instantiateViewControllerWithIdentifier:@"TabNav"]; [self presentViewController:viewController 动画:YES 完成:nil];
换句话说,它无法识别 self.storyboard... 无论如何,感谢您的帮助!
【讨论】:
以上是关于单击一行时视图不会改变 - xcode ios的主要内容,如果未能解决你的问题,请参考以下文章