【问题标题】:how to create a button on a tab bar on xcode 9如何在xcode 9的标签栏上创建一个按钮
【发布时间】:2018-04-02 03:20:59
【问题描述】:

我想在标签栏上添加一个按钮。我已经使用带有四个视图控制器的故事板创建了一个标签栏,实际上我使用了标签式应用程序。现在我想在标签栏的中心添加一个按钮,如图tabBar with button at the center 所示,以编程方式在 appdelegate.swift 文件中。当您使用情节提要创建选项卡栏时,我不知道如何在选项卡栏上添加按钮。我不知道如何获取使用 appdelegate.swift 文件上的情节提要创建的 tabBar 的引用,我有很多搜索安静但一无所获. 我是 iphone 开发的新手,任何帮助都会对我有很大帮助。 我正在使用 xcode 9,所以请根据 xcode 9 语法告诉我。

【问题讨论】:

    标签: ios xcode storyboard tabbar xcode9


    【解决方案1】:

    appdelegate.swift 文件在任何故事板开始加载之前执行,因此您无法访问故事板对象。但是您可以在您的 appdelegate 文件中,在您的应用委托类之前以编程方式创建您的标签栏对象。它将在全球范围内创建。然后你可以在 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool 方法中对你的标签栏对象做任何事情。 毕竟,您可以在 viewDidLoad 方法中将标签栏对象添加到情节提要中。 但不建议创建全局变量。

    【讨论】:

    • 我能否在 viewDidLoad 方法中获得使用故事板创建的标签栏的参考。如果是的话,你能和我分享一些行代码吗?
    • code 类控制器:UIViewController { @IBOutlet weak var tabBar: UITabBar! override func viewDidLoad() { super.viewDidLoad() tabBar.backgroundImage = UIImage(name: “sth”) } } code 您应该在身份检查器中将此 viewController 类作为您的故事板视图控制器。然后将@IBOutlet 连接到您的标签栏,然后使用它。
    【解决方案2】:

    基本上它不是一个按钮,只是使用图像,您必须使用 tabbarcontroller.tabbar 添加通过框架或约束在中心添加子视图。从框架 x 将是self.tabbar.frame.size.width/2 - mycenterimage.frame.size.width/2 用于图像。 您只需要实现 tabcontroller 委托。 optional public func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool 并为该索引返回 No 并做任何你想做的事情。

    【讨论】:

    • 只需获取 tabcontroller 的实例,然后 "tabVar.delegate = self; 然后在类似的控制器或对象中覆盖它 public func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool{.if ( viewController == centerViewControllerObject) 返回 false;否则返回 true;}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多