我有一个简单的iPhone应用程序,它有一个标签栏和3个标签.每个选项卡作为单独的笔尖加载到相应的控制器.每个笔尖都包含一个tableview,其中包含一些其他用于搜索/过滤的控件.
我想要的(并且似乎无法找到一个示例)是向应用程序添加导航控制器,以便每个笔尖(即每个标签)可以向下钻取到更多详细信息页面.
我应该在主窗口中添加导航控制器并为其创建一个导航控制器,IBOutlet还是应该将NC添加到笔尖中.
Ken*_*ner 63
一旦在XIB中有一个标签栏,最简单的方法是将UINavigationController对象从Library窗口(看起来像金色背景上的左侧导航栏按钮)拖动到标签栏的树视图中(仅文本视图,而不是GUI).将导航控制器放在标签栏控制器内,然后将现有视图控制器拖动到导航控制器中.
当您去查看该选项卡时,您应该看到它顶部的导航栏...如果您从另一个xib加载导航控制器,您将修改选项卡栏xib中的导航栏.
Max*_*llo 27
这是如何以编程方式添加NavigationController(例如在你的AppDelegate中)
UIViewController *viewController1, *viewController2;
viewController1 = [[[UIViewController alloc] initWithNibName:@"FirstViewController_iPhone" bundle:nil] autorelease];
UINavigationController *navigationcontroller = [[[UINavigationController alloc] initWithRootViewController:viewController1] autorelease];
viewController2 = [[[UIViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil] autorelease];
self.tabBarController = [[[UITabBarController alloc] init] autorelease];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:navigationcontroller, viewController2, nil];
Run Code Online (Sandbox Code Playgroud)
如果您在Viewcontroller1中有一个tableview,则可以通过使用self.navigationController例如didSelectRowAtIndexPath打开DetailView 来访问Navigationcontroller
例如.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,detailViewController带有NIB文件,该文件添加带有后退按钮的导航栏.但是,如果以detailViewController编程方式初始化,则可以向a添加一个动作(GoBack)以从其navigationcontroller中UIBarButtonItem删除detailViewController它.
-(void) GoBack
{
[self.navigationController popViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)
dns*_*son 13
我意识到这已经很晚了,但是这个问题在今天谷歌搜索结果中排名第一,所以我想我会添加一个答案.O'Reilly有一个很棒的youtube视频教程,它将引导您完成一个tabbar +导航控制器应用程序.请在此处查看:http://www.youtube.com/watch?v = LBnPfAtswgw
思考它的方法是这样的:
您希望每个选项卡都有一个导航控制器.然后,每个导航控制器都需要一个根视图控制器和一个加载的Nib.
因此,在IB中,为每个选项卡添加导航控制器.然后,将每个导航控制器配置为具有适当的根视图控制器和Nib.
很多答案,但都没有检查过......
当然,现在Xcode界面构建器中的故事板非常简单:
创建感兴趣的导航控制器,然后选择菜单Editor和项目Embed In >,然后Tab Bar Controller.
这甚至适用于Xcode为您开始使用新项目的主/详细拆分视图控制器模板时提供的导航控制器.在这两种情况下,我现在都有一个标签栏控制器作为我的主人; 对于iPhone来说,它一直在通过终端控制器涟漪,而在iPad上,它只将标签保留在主控器中(即横向右侧的分割,纵向的弹出式).
| 归档时间: |
|
| 查看次数: |
69172 次 |
| 最近记录: |