请问有谁能告诉我在使用iOS中的故事板时如何设置默认选项卡。我似乎无法弄清楚如何实现。
谢谢
请问有谁能告诉我在使用iOS中的故事板时如何设置默认选项卡。我似乎无法弄清楚如何实现。
谢谢
虽然你可以像其他答案一样通过编程来设置初始选定的选项卡,但是如果要在故事板中实现同样的功能而不需要修改代码,则需按照以下步骤进行:
当你完成以上步骤后,它应该看起来像这样:
对于一些人来说,可能会觉得为UITabBarController
创建子类有些过度,但我认为这是提供最清晰的解决方案。
BaseTabBarController.swift
添加一个 @IBInspectable
并在 viewDidLoad
中设置它:
class BaseTabBarController: UITabBarController {
@IBInspectable var defaultIndex: Int = 0
override func viewDidLoad() {
super.viewDidLoad()
selectedIndex = defaultIndex
}
}
在storyboard中,将你的 UITabBarController
设置为你的新子类:
UITabBarController
的新文件子类;在viewDidLoad
的末尾添加以下内容:
self.selectedIndex = 1;
将这个新文件设置为你Storyboard中UITabBarController
的自定义类。
完成了。
以下代码对我有效:
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
tabBarController.selectedIndex = 2;
您可以使用以下两种方法之一:
tabBar.items = tabBarItems;
tabBar.selectedItem = [tabBarItems objectAtIndex:0];
或者从对象中直接获取的方法
[tabBar setSelectedItem:myUITabBarItem];
或者您可以将它们组合起来做到这一点:
tabBar.items = tabBarItems;
[tabBar setSelectedItem:[tabBarItems objectAtIndex:0]];
但我还没有测试过这种方法,希望这可以帮到你!
selectedIndex = defaultIndex
。 - emmicsapplicationDidBecomeActive
函数,并添加以下行:let tabBarController = self.window?.rootViewController as! UITabBarController
tabBarController.selectedIndex = 0 // any index you want
如果您只想更改默认选定的控制器,而不需要进行其他自定义,则我的变体非常适合。只需添加以下类别:
// UITabBarController+DefaultPage.h
#import <UIKit/UIKit.h>
@interface UITabBarController(DefaultPage)
@end
// UITabBarController+DefaultPage.m
#import "UITabBarController+DefaultPage.h"
@implementation UITabBarController(DefaultPage)
- (void)viewDidLoad {
[super viewDidLoad];
self.selectedIndex = 1;
}
@end
p.s: I prefer @joshua-finch answer
TabBarController
的viewDidLoad()
方法中,将selectedIndex
设置为你想要的索引值。(0
为第一个,3
为第四个,以此类推。)class BaseTabBar: UITabBar {
@IBInspectable var defaultIndex: Int = 0 {
didSet {
self.selectedItem = self.items?[defaultIndex]
}
}
}