【问题标题】:How to switch to a tabbar item in the "More" View?如何在“更多”视图中切换到标签栏项目?
【发布时间】:2013-03-26 12:42:06
【问题描述】:

我正在为 Iphone/Ipad 编写目标 c 中的应用程序。我在标签栏的“更多”中有一些项目。我想切换到其中一种观点。我该怎么做?通常我会使用 selectedIndex,但它在“更多”选项卡上不起作用。

【问题讨论】:

    标签: ios objective-c uitabbar


    【解决方案1】:

    要从更多屏幕中选择视图控制器,您应该首先选择更多视图控制器,因为它在之前的答案中显示:

    [tabBarController setSelectedViewController: [tabBarController moreNavigationController]]
    

    然后对更多视图控制器执行pushViewController方法

    [[tabBarController moreNavigationController] pushViewController:neededViewController animated:NO]
    

    或者使用更好的方法:

    [tabBarController setSelectedViewController: neededViewController ]
    

    【讨论】:

    • 如何找到需要的ViewController?如果我创建一个新的 (Home *homeView = [[Home alloc] init]; [tabBarController setSelectedViewController: homeView ];) xcode 在运行时告诉我“由于未捕获的异常 'NSInvalidArgumentException' 而终止应用程序,原因:'-[UITabBarController setSelectedViewController :] 只能选择选项卡栏控制器的视图控制器列表中的视图控制器。” Home是一个由uitabbar管理的View控制器
    • 只有当它包含在 tabBarController.viewControllers 数组中时,您才能选择选定的视图控制器。 [tabBarController setSelectedViewController:[tabBarController.viewControllers objectAtIndex:neededIndex]]
    • 谢谢!这段代码完美运行!我可以要求您将其添加(根据需要修改)到您的答案中以使其更完整吗? [tabBarController setSelectedViewController: [tabBarController.viewControllers objectAtIndex:7]];
    【解决方案2】:
    [myTabBarController setSelectedViewController: viewControllerThatYouNeed];
    

    编辑:

    尝试使用 UITabBarController 的 selectedViewController 属性。 来自 Apple 文档:

    块引用 在 iOS 3.0 及更高版本中,您可以使用此属性来选择 viewControllers 属性中的任何视图控制器。这包括由更多导航控制器管理的视图控制器,其标签栏项目在标签栏中不可见。

    【讨论】:

    • 这会导致更多视图。如果我想转到更多视图中的项目?
    • 我无法获取代码来选择正确的视图控制器。如果我创建一个新的 (Home *homeView = [[Home alloc] init]; [tabBarController setSelectedViewController: homeView ];) xcode运行时告诉我“由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[UITabBarController setSelectedViewController:] 只能选择选项卡栏控制器的视图控制器列表中的视图控制器。” Home是一个由uitabbar管理的View控制器
    猜你喜欢
    • 2012-10-09
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 2013-04-17
    • 1970-01-01
    • 2016-07-09
    相关资源
    最近更新 更多