我试图在iOS中创建一个小应用。登录页面之后,我有一个TabBarController,其中的第一个选项卡是TableViewController。在didSelectRowAtIndexPath中,我尝试为每个选定的行推送一个视图控制器。当我使用NSLog打印它并且我无法推送ViewController时,相同的视图控制器但是self.navigationController是(null)。 HELP !!
以下是示例代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Navigation logic may go here, for example:
// Create the next view controller.
PlayerDetailsViewController *detailViewController = [[PlayerDetailsViewController alloc] initWithNibName:@"PlayerDetailsViewController" bundle:nil];
detailViewController.myImg.image=[UIImage imageNamed:[self.arrNames objectAtIndex:indexPath.row]];
detailViewController.name.text=[self.names objectAtIndex:indexPath.row];
detailViewController.year.text=[self.draft objectAtIndex:indexPath.row];
detailViewController.height.text=[self.height objectAtIndex:indexPath.row];
detailViewController.weight.text=[self.weight objectAtIndex:indexPath.row];
detailViewController.pro.text=[self.pro objectAtIndex:indexPath.row];
detailViewController.ppg.text=[self.ppg objectAtIndex:indexPath.row];
detailViewController.apg.text=[self.apg objectAtIndex:indexPath.row];
detailViewController.rpg.text=[self.rpg objectAtIndex:indexPath.row];
NSLog(@"%@",self.navigationController);
[self.navigationController pushViewController:detailViewController animated:YES];
}
更新:我让navigationController工作但现在,推送视图中的数据(PlayerDetails)为空白!!
答案 0 :(得分:0)
你没有在UINavigationController中嵌套你的firstViewController,这是错的。
所以我猜你的代码在创建UITabViewController时会是这样的。
[tabVC setViewControllers:[vc1,vc2,nil]];//tabVC = UITabViewController
需要改变下面的内容;
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc1];
[tabVC setViewControllers:[nav,vc2,nil]];
答案 1 :(得分:0)
假设UITabBarController
的实例为tabVC
且UITableViewController
的实例为tableVC
。
UINavigationController *nav = [[UINavigationController alloc initWithRootViewController:tabVC];
或
UINavigationController *nav = [[UINavigationController alloc initWithRootViewController:tableVC];
[tabVC setViewControllers:@[nav]];
两者都可以解决您的问题。