如何从 UIButton 到选项卡栏项?
Posted
技术标签:
【中文标题】如何从 UIButton 到选项卡栏项?【英文标题】:How to segue from UIButton to a Tab Bar Item? 【发布时间】:2012-07-30 17:35:59 【问题描述】:我有一个带有标签栏的应用,其中包含 5 个标签。我决定使用“主屏幕”而不是直接在第一个选项卡中打开应用程序。我的主屏幕将包含一条欢迎消息和 5 个按钮,可直接转到所需的选项卡。示例:第 4 个按钮将转到第 4 个选项卡。单击一个按钮后,不应再看到主屏幕。导航模式将通过标签栏。
My Home View Controller 5 个按钮和对 Tab Bar Controller 的引用,以传递单击的按钮。选项卡栏控制器 (@interface TabBar : UITabBarController <UITabBarControllerDelegate>
) 控制 5 个选项卡开始的屏幕。由于某些原因,我无法让[self.tabBarController setSelectedIndex:3];
工作。我把它放在- (void)viewDidLoad
,但它什么也没做。
有人知道为什么不调用 setSelectedItem 吗?
编辑:看看那个问题:
self.tabBarController.selectedIndex = 1;
NSLog(@"%i", self.tabBarController.selectedIndex);
在运行时,我得到 0 作为 NSLog 的结果...为什么 setter 不工作?
【问题讨论】:
请通过-viewDidLoad:
方法发布您的代码。
那里没有什么令人印象深刻的东西,事实上这是我知道的唯一方法。 - (void)viewDidLoad [超级 viewDidLoad]; NSLog(@"didLoad"); [self.tabBarController setSelectedIndex:3];
标签栏控制器是否与情节提要中的视图控制器正确链接?
嗯,我没有从我的控制器到界面的 IBOutlet,因为 TabBarController 默认已经有一个标签栏。但是,当我尝试将我的班级连接到现有的标签栏时,我在运行时遇到了崩溃。例如,我尝试将 Tab Bar 的委托设置为类本身,但应用程序崩溃了。
应该是这样的吗?
【参考方案1】:
您可以自定义选项卡栏控制器的转场并命名转场(例如,使用“yourSegueName”)。
不仅仅是在所需的标签页调用 UITabBarController 和 setSelectedIndex:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
if ([[segue identifier] isEqualToString:@"yourSegueName"])
UITabBarController *destController = [segue destinationViewController];
[destController setSelectedIndex:3];
【讨论】:
以上是关于如何从 UIButton 到选项卡栏项?的主要内容,如果未能解决你的问题,请参考以下文章
添加选项卡栏项 (UITabBar) 时 XCode 4.3 崩溃