Iphone 基于导航的TabBar应用程序
我有一个基于导航的应用程序,它显示一个表视图,您可以在其中选择一个单元格,并将您带到该单元格的“详细视图”。我希望这个视图有一个选项卡,我可以在3个子视图之间进行选择。我在网上找到了一些解决方案,但没有一个是非常有用的。是否有专门针对这一点的教程,或者他们的源代码是否指明了如何做到这一点?谢谢基本上,您需要做的是将选项卡视图控制器推到导航控制器的viewcontroller堆栈上 从新的“基于导航的应用程序”模板开始。我在RootViewController.m中添加了以下方法:Iphone 基于导航的TabBar应用程序,iphone,navigation,tabbar,Iphone,Navigation,Tabbar,我有一个基于导航的应用程序,它显示一个表视图,您可以在其中选择一个单元格,并将您带到该单元格的“详细视图”。我希望这个视图有一个选项卡,我可以在3个子视图之间进行选择。我在网上找到了一些解决方案,但没有一个是非常有用的。是否有专门针对这一点的教程,或者他们的源代码是否指明了如何做到这一点?谢谢基本上,您需要做的是将选项卡视图控制器推到导航控制器的viewcontroller堆栈上 从新的“基于导航的应用程序”模板开始。我在RootViewController.m中添加了以下方法: - (void
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//Navigation logic may go here. Create and push another view controller.
UIViewController *viewOneViewController = [[UIViewController alloc] init];
viewOneViewController.title = @"One";
viewOneViewController.view.backgroundColor = [UIColor redColor];
UIViewController *viewTwoViewController = [[UIViewController alloc] init];
viewTwoViewController.title = @"Two";
viewTwoViewController.view.backgroundColor = [UIColor orangeColor];
UIViewController *viewThreeViewController = [[UIViewController alloc] init];
viewThreeViewController.title = @"Three";
viewThreeViewController.view.backgroundColor = [UIColor greenColor];
UITabBarController *anotherViewController = [[UITabBarController alloc] init];
anotherViewController.viewControllers = [NSArray arrayWithObjects:viewOneViewController, viewTwoViewController, viewThreeViewController, nil];
[self.navigationController pushViewController:anotherViewController animated:YES];
[anotherViewController release];
}
将此更改为25以测试:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 25;
}
现在,当我构建并运行时,我将以一种基本的方式了解您在寻找什么。完成此工作后,您要做的是将UIViewController更改为您创建的自定义子类,以保存每个视图的代码。(如果您还使用Interface Builder,请将init更改为initWithNibNamed:)
希望这对你有所帮助。你应该知道,如果你这么做,苹果可能会拒绝你的应用程序 从“组合选项卡栏和导航控制器” 组合选项卡栏和导航控制器非常常见,如图4所示。要做到这一点,只需将导航控制器添加到选项卡栏控制器(但是,永远不要将选项卡栏控制器添加到导航控制器)。
因此,这可能违反人机界面准则,因此您可能会被拒绝。我也在尝试做同样的事情。应用程序“Tweetie”也在做类似的事情。他们有一个帐户的表格视图,然后您选择一个帐户并显示选项卡栏 总之,直接从苹果的文档中可以看出: pushViewController:已设置动画: 将视图控制器推送到接收器堆栈上并更新显示
- (void)pushViewController:(UIViewController*)已设置动画的viewController:(BOOL)已设置动画
-JP您还应该创建UITabBarController的自定义子类,在该子类中分配其ViewController,这比将所有内容都放在didSelectRow方法中更干净。除此之外,你还忘了一些“释放”。但仍然+如果我们不想用xib制表,那么。。??