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()
功能,即使是獲取傳遞的實際情況一樣。
任何想法?
有道理。這工作。謝謝! –