我想在导航控制器(父)上实现一个UIBarButtonItem,它已经嵌入了带有三个选项卡的TabBar控制器,我想对它实现一个动作,但是可以从所有视图调用它来实现不同的UIBarButtonItem每个观点。
我想要的是当点击的UIBarButtonItem显示的ActionSheet在所有视图中都是相同的,无论用户在哪个视图中。
你能帮我解决这个问题,我是iOS和Swift编程的新手。
谢谢!
答案 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)
}
}
这对我来说很好。