从其他视图控制器调用UIBarButtonItem

时间:2015-09-30 16:21:56

标签: view call uibarbuttonitem

我想在导航控制器(父)上实现一个UIBarButtonItem,它已经嵌入了带有三个选项卡的TabBar控制器,我想对它实现一个动作,但是可以从所有视图调用它来实现不同的UIBarButtonItem每个观点。

我想要的是当点击的UIBarButtonItem显示的ActionSheet在所有视图中都是相同的,无论用户在哪个视图中。

你能帮我解决这个问题,我是iOS和Swift编程的新手。

谢谢!

1 个答案:

答案 0 :(得分:0)

好吧,我认为我回答了我自己的问题,而且很容易。我只是创建一个自定义视图控制器文件并与我的历史记录板上的TabBar View相关联,并为此添加UIButtonBarItem的操作:

import UIKit

class CustomTabBarViewControler: UITabBarController {


    @IBAction func showActionSheet(sender: UIBarButtonItem) {

        let myActionSheet = UIAlertController(title: "Log in", message: "How do you want to log in", preferredStyle: UIAlertControllerStyle.ActionSheet)

        let fbLoginButton = UIAlertAction(title: "Facebook", style: UIAlertActionStyle.Default)
            { (ACTION) in
                print("Facebook Button Tapped")
        }
        let googlePlusButton = UIAlertAction(title: "Google Plus", style: UIAlertActionStyle.Default) {
            (ACTION) in
            print("Google Plus Button Tapped")
        }
        let twitterButton = UIAlertAction(title: "Twitter", style: UIAlertActionStyle.Default) {
            (ACTION) in
            print("Twitter Button Tapped")
        }

        let cancelButton = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel) {
            (ACTION) in
            print("Cancel Button Tapped")
        }

        myActionSheet.addAction(fbLoginButton)
        myActionSheet.addAction(googlePlusButton)
        myActionSheet.addAction(twitterButton)
        myActionSheet.addAction(cancelButton)

        self.presentViewController(myActionSheet, animated: true, completion: nil)
    }

}

这对我来说很好。