【发布时间】:2011-01-28 17:48:25
【问题描述】:
我有一个作为标签栏应用程序创建的应用程序,有 3 个标签(主页、搜索、我的帐户)。主页视图会加载一些信息和一个搜索按钮。然后搜索按钮将用户带到搜索视图,但由于用户没有选择选项卡,因此所选选项卡仍然是主页选项卡。搜索 viewDidLoad 后,如何将选定的选项卡从主页更改为搜索?
【问题讨论】:
标签: iphone uitabbarcontroller uitabbar
我有一个作为标签栏应用程序创建的应用程序,有 3 个标签(主页、搜索、我的帐户)。主页视图会加载一些信息和一个搜索按钮。然后搜索按钮将用户带到搜索视图,但由于用户没有选择选项卡,因此所选选项卡仍然是主页选项卡。搜索 viewDidLoad 后,如何将选定的选项卡从主页更改为搜索?
【问题讨论】:
标签: iphone uitabbarcontroller uitabbar
感谢您的帮助,你们帮助我朝着正确的方向发展,我最终使用 App 委托来访问 UITabBarController。这就是它的样子。
Motel_6AppDelegate *appDelegate = (Motel_6AppDelegate*) [[UIApplication sharedApplication] delegate];
[appDelegate.rootController setSelectedIndex:1];
【讨论】:
阅读文档。在搜索控制器中,您可以调用:
self.tabBarController.selectedViewController = self;
UITabBarController 也有一个 selectedIndex 属性,如果这对您更方便的话。不过,viewDidLoad 可能是放置此代码的错误位置,因为它可能不会在每次显示搜索控制器时都被调用。您应该直接从用户点击主屏幕上的搜索按钮时调用的操作中选择选项卡。
【讨论】:
使用 tabBarController.selectedIndex = intIndex; // 在你的情况下 1
在 applicationDidLaunch 中使用此代码
【讨论】:
这个 sn-p 适用于我在 iOS7 和 Xcode 5 的故事板中。
- (IBAction)cancelButtonPressed:(id)sender
{
[self.tabBarController setSelectedIndex:1];
}
【讨论】: