Tab和Naviagetion一起使用(初步调查1)

1. Tab是如何实现的


从Xcode自带的模板 TabbedApplication来分析得出以下结论。

Tab的切换是在几个ViewController之间的切换。所以由Application来负责它们切换,由xxxAppDelegate来实现[UITabBarControllerDelegate]protocol。


仔细分析代码:

// Override point for customization after application launch.

》生成各个TabView的Controller

UIViewController *viewController1 = [[[wordlearnFirstViewController alloc] initWithNibName:@"wordlearnFirstViewController" bundle:nil] autorelease];

UIViewController *viewController2 = [[[wordlearnSecondViewController alloc] initWithNibName:@"wordlearnSecondViewController" bundle:nil] autorelease];

》生成一个系统提供的UITabBarController

self.tabBarController = [[[UITabBarController alloc] init] autorelease];

》将各个TabViewController放入TabBarController的容器中

self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];

》然后把TabBarController作为RootViewController交给应用程序的window

self.window.rootViewController = self.tabBarController;

[self.window makeKeyAndVisible];

return YES;




总结:

2. Navigation是如何实现的

从Xcode自带的模板 Master-DetailApplication来分析得出以下结论。

Master和Detail是2个不同的View(在不同的xib文件中定义),但是在一个viewController中对其进行切换。

仔细分析代码:

》当PreviousView中有一个按钮被点击,要求迁移到下一个画面时,触发。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

》生成下一个画面的Controller(详细画面)

    if (!self.detailViewController) {

        self.detailViewController = [[[DrinkMixerDetailViewControlleralloc] initWithNibName:@"DrinkMixerDetailViewController"bundle:nil]autorelease];

    }

》将详细画面放入NavigationStack中,显示。

    [self.navigationControllerpushViewController:self.detailViewControlleranimated:YES];

}

总结:

3. Tab中的Navigation

结合上的分析,在以Tab为主的画面中如何实现Navigation,如下图。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值