0

我正在努力做到这一点,所以我在屏幕底部有一个标签栏,它总是在那里。我也想要它,所以如果我“单击”到其中一个选项卡中的某个菜单,它会为您提供返回选项,从而提供导航控制器和选项卡栏控制器。

我仍然不太了解iOS,所以我找到的答案让我感到困惑。

这个答案:在应用程序中有一个 UITabBar 和一个 UINavigationController?

那么我该如何实现呢?我猜我在我的 App Delegate 中改变了这个方法,

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    UIViewController *viewController1, *viewController2;
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        viewController1 = [[CFSDFirstViewController alloc] initWithNibName:@"CFSDFirstViewController_iPhone" bundle:nil];
        viewController2 = [[CFSDSecondViewController alloc] initWithNibName:@"CFSDSecondViewController_iPhone" bundle:nil];
    } else {
        viewController1 = [[CFSDFirstViewController alloc] initWithNibName:@"CFSDFirstViewController_iPad" bundle:nil];
        viewController2 = [[CFSDSecondViewController alloc] initWithNibName:@"CFSDSecondViewController_iPad" bundle:nil];
    }
    self.tabBarController = [[UITabBarController alloc] init];
    [self.tabBarController setDelegate:self];
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];
    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
    return YES;
}

感谢你的协助!

4

1 回答 1

2

首先,您不需要手动设置笔尖名称。你可以只命名它们CFSDFirstViewController~iphone.xib并且CFSDFirstViewController~ipad.xib. 然后你可以打电话[[CFSDFirstViewController alloc] init],让 iOS 为你做剩下的事情。有关信息,请参阅iOS 支持设备特定资源

关于您的问题,您只能UINavigationControllerUITabBarController. 要做到这一点viewController1UINavigationController如下所示:

CFSDFirstViewController viewController1 = [[CFSDFirstViewController alloc] init];
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:viewController1];

然后使用navController而不是viewController1像以下那样使用

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

检查代码,因为我是手写的。如果您使用非 ARC 项目,请注意内存。

希望能帮助到你。

于 2012-04-26T16:19:52.340 回答