我有一个带tabbarcontroller的故事板。标签栏之一有一个tableview,我希望当用户从tableview中点击一行时打开一个详细视图。问题是当我打开详细视图标签栏和导航栏隐藏时...在故事板中我创建了一个新的视图控制器的详细视图,然后我创建了一个新文件并将其引用到详细视图类。
didselectrowatindexpath中的代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
detalleYouTube *dvController = [[detalleYouTube alloc] init];
[self.navigationController pushViewController:dvController animated:YES];
}
提前谢谢!
答案 0 :(得分:6)
这有点旧,但如果有人需要这样做,这是一个简单的方法:
您可以使用标签栏中的视图添加segue来detalleYouTube,将标识符添加到segue并执行此操作:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"segueIdentifier" sender:tableView];
}
答案 1 :(得分:5)
另一种方法是不使用tableView:didSelectRowAtIndexPath而是使用prepareForSegue:sender
我这样做的方式是:
-(void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender
{
DetailViewController *viewController = [segue destinationViewController];
CustomObject *custObject = [arrayOfObjects objectAtIndex:[self.tableView indexPathForSelectedRow].row];
viewController.objectNeeded = custObject;
}
此示例基于您的详细视图控制器已连接到表视图控制器的想法。
答案 2 :(得分:3)
我假设您将“详细信息”视图作为故事板的一部分(不在单独的XIB中),如果是这样,您将需要在“详细信息”TabBarItem seque的开头放置单独的NavigationController。
这个页面有一个很好的教程,我认为你想要实现的目标: http://maybelost.com/2011/10/tutorial-storyboard-in-xcode-4-2-with-navigation-controller-and-tabbar-controller-part1/
另请查看这些链接以获得更深入的故事板教程:
http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1
http://www.raywenderlich.com/5191/beginning-storyboards-in-ios-5-part-2