0
我有我的整个应用程序在我UINavigationController
个自定义的返回按钮,看起来像这样:自定义后退按钮中的UINavigationController和雨燕2.2选择
我有一个全局函数(随机斯威夫特文件;不是一类),我引用我到处都需要一个:
func customBackButton(controller: UIViewController){
if !iPad(){
controller.navigationItem.leftBarButtonItem =
UIBarButtonItem(image:UIImage(named: "back"), style:.Plain, target:controller, action:"goBack")
}
}
然后在我的控制器的viewDidLoad
,我只需拨打:
override func viewDidLoad() {
//...
customBackButton(self)
}
的action
选择调用,我在使用了自定义后退按钮每个控制器定义了goBack
功能:
func goBack(){
//Because of the splitViewController, we have to reference the main nav controller
if let navController = splitViewController?.viewControllers[0] as? UINavigationController{
navController.popViewControllerAnimated(true)
}
}
如果您在本实施摇头,我能够更好地敞开这样做的方法。 :)
现在到我的问题...
如何使用新雨燕2.2选择语法来引用goBack
这样吗?
func customBackButton(controller: UIViewController){
if !iPad(){
controller.navigationItem.leftBarButtonItem =
UIBarButtonItem(image:UIImage(named: "back"), style:.Plain, target:controller, action:#selector(controller.goBack))
}
}
这将引发一个错误,因为controller
是UIViewController
不包含goBack()
功能,即使是获取传递的实际情况一样。
任何想法?
有道理。这工作。谢谢! –