【问题标题】:Problems with UINavigation controller inside of UITabbarcontrollerUITabbarcontroller 内的导航控制器问题
【发布时间】:2011-05-26 18:34:52
【问题描述】:

我有一个带有 4 个标签栏项目的 UITabbar 控制器。每个标签栏项目都有 UINavigationController。实际上,当我切换下一个标签栏项目时,标签栏会从堆栈中加载最后一个视图控制器。

每当我在标签栏项目之间切换时,我想从堆栈中加载第一个视图控制器。

我怎样才能做到这一点?

【问题讨论】:

  • 堆栈上的最后一个视图控制器?它将显示堆栈上最顶层的 viewController。贴一些代码...

标签: iphone uinavigationcontroller uitabbarcontroller


【解决方案1】:

您希望它返回到每个选项卡中的根视图控制器,而不是在切换选项卡时记住用户在层次结构中的位置?

您需要在切换标签时调用导航控制器上的popToRootViewControllerAnimated:NO(即在标签栏控制器委托方法中)。

【讨论】:

    【解决方案2】:

    您可能遵循的最佳方法是:

    Appdelegate.h

    UITabBarController *tabBarController;
    // set properties
    

    Appdelegate.m

    // Synthsize
    
    tabBarController = [[UITabBarController alloc] init];
    tabBarController.delegate=self;
    
    //Adding Search,Nearby,Map,AboutUs,Favorites Tabs to tabBarController  
    Search * search = [[Search alloc] init];  
    UINavigationController *searchNav = [[UINavigationController alloc] initWithRootViewController:search];  
    
    Nearby* nearby = [[Nearby alloc] init];  
    UINavigationController *nearbyNav = [[UINavigationController alloc] initWithRootViewController:nearby];  
    
    Map* map = [[Map alloc] init];  
    UINavigationController *mapNav = [[UINavigationController alloc] initWithRootViewController:map];  
    
    AboutUs* aboutUs = [[AboutUs alloc] init];  
    UINavigationController *aboutUsNav = [[UINavigationController alloc] initWithRootViewController:aboutUs];  
    
    Favorites* favorites = [[Favorites alloc] init];  
    UINavigationController *favoritesNav = [[UINavigationController alloc] initWithRootViewController:favorites];  
    
    NSArray* controllers = [NSArray arrayWithObjects:searchNav,nearbyNav,mapNav,aboutUsNav,favoritesNav, nil];  
    
    tabBarController.viewControllers = controllers;
    
    [window addSubview:tabBarController.view];    
    

    您可以相应地管理要将导航控制器或视图控制器放置在哪个选项卡中。
    然后在上面提到的每个视图控制器中都需要实现

    - (id)init {}  
    

    您可以在其中设置选项卡名称和图像。
    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 1970-01-01
      • 2017-09-07
      相关资源
      最近更新 更多