如何在iOS上创建选项卡栏?

人气:499 发布:2022-10-16 标签: ios objective-c uitabbarcontroller uitabbar

问题描述

我需要在我的主视图控制器上有一个带有选项卡的选项卡栏,以便导航到所有其他控制器。我只需要这个控制器上的选项卡栏,当我转到另一个控制器时,我只需要有一个后退按钮就可以转到主控制器。 现在我有几个问题要问。我在主视图控制器中创建了选项卡栏,并创建了包含所需文本和图像的所有选项卡。但是,我发现我只能为选项卡栏创建IBOutlet,而不是为每个选项卡创建IBActions(正如我所想的那样)。于是我创建了一个IBOutlet并将其连接到我的选项卡栏。

如何才能引用每个选项卡?

如果我可以引用每个选项卡,那么当我不能对其执行操作时,如何才能在选项卡被选中时更改视图控制器呢?(我不是要求更改控制器的代码,我是要求放置代码的位置,以便我的应用程序知道这个特定的选项卡是被按下的,并且必须更改控制器)。(我不是在询问更改控制器的代码,而是询问我应该将代码放在哪里,以便我的应用程序知道这个特定的选项卡是被按下的,并且必须更改控制器)。 感谢您阅读我的帖子:d

推荐答案

您可以在applicationDidFinishLaunching中以编程方式创建UITabBarController,并将其设置为根视图控制器(或者,如果您愿意,也可以将其表示为模式视图)。以下是执行此操作的最小代码:

UITabBarController *tabBarController = [[UITabBar alloc] init];

UIViewController *controller1 = [[YourViewController alloc] init];
UIViewController *controller2 = [[YourOtherViewController alloc] init];

tabBarController.viewControllers = [NSArray arrayWithObjects:
    controller1,
    controller2,
    nil];

// set as the root window
window.rootViewController = tabBarController;

如果要自定义选项卡栏项目的外观,请通过在子视图控制器中添加重载(UITabBarItem *)tabBarItem来实现:

- (UITabBarItem *)tabBarItem
{
    return [[UITabBarItem alloc] initWithTitle:@"Amazing" image:[UIImage imageNamed:@"Blah.png"] tag:0];
}

530