首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Swift:如何通过按下导航栏按钮来访问选项卡栏项目

Swift:如何通过按下导航栏按钮来访问选项卡栏项目
EN

Stack Overflow用户
提问于 2016-08-17 14:24:16
回答 1查看 2.1K关注 0票数 1

我现在有一个CustomTabBarController类和一个CustomNavBarController类。

标签栏有五个选项卡,运行良好。导航栏类在导航栏的右侧添加三个按钮(home/messages/profile)。当我单击“主页”按钮时,下面的函数将被触发。

CustomNavBarController.swift (只有tappedHome函数)

代码语言:javascript
运行
复制
func tappedHome(sender: UIButton) {
     // Go to home page (tab bar index 0)
}

这是我的AppDelegate和CustomTabBar文件。

AppDelegate.swift

代码语言:javascript
运行
复制
    window?.rootViewController = CustomTabBarController()
    let tabBar: UITabBarController = self.window?.rootViewController as! UITabBarController
    tabBar.selectedIndex = 0

CustomTabBarController.swift

代码语言:javascript
运行
复制
class CustomTabBarController: UITabBarController, UITabBarControllerDelegate {

override func viewDidLoad() {

    super.viewDidLoad()

    self.delegate = self

    self.viewControllers = [createDummyNavControllerWithTitle("News", imageName: "icon_news", viewController: MainController()),
                            createDummyNavControllerWithTitle("Games", imageName: "icon_games", viewController: GamesController()),
                            createDummyNavControllerWithTitle("Students", imageName: "icon_students", viewController: StudentsController()),
                            createDummyNavControllerWithTitle("Ranking", imageName: "icon_rank", viewController: StatsController()),
                            createDummyNavControllerWithTitle("Info", imageName: "icon_info", viewController: InfoController())]
}

func tabBarController(tabbarController: UITabBarController, didSelectViewController viewController: UIViewController) {

     self.title = viewController.title
}

// Shortcut function for the tab bar items
private func createDummyNavControllerWithTitle(title: String, imageName: String, viewController: UIViewController) -> UINavigationController {

    viewController.title = title

    let navController = UINavigationController(rootViewController: viewController)
    navController.tabBarItem.title = title
    navController.tabBarItem.image = UIImage(named: imageName)?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)

    return navController
}
}

当我单击home按钮时,如何告诉CustomNavBarController.swift中的函数加载标签栏的第一个索引?

PS:我之所以希望有两种方法返回主页,是因为标签栏在每种情况下都是不可见的。

EN

Stack Overflow用户

回答已采纳

发布于 2016-08-17 14:51:17

在您的tappedHome(_:)方法中执行以下代码应该可以做到这一点:

代码语言:javascript
运行
复制
let appDelegate  = UIApplication.sharedApplication().delegate as! AppDelegate
let tabBarController = appDelegate.window!.rootViewController as! UITabBarController
tabBarController.selectedIndex = 0
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38999367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档