0
因爲我在通過故事板創建按鈕時遇到了問題,所以我開始通過代碼啓動正確的導航欄按鈕 - 通過此問題How can I go back to the initial view controller in Swift?找到。此代碼旨在讓我回到我的根視圖控制器。如何將操作添加到編程式按鈕?
所以這裏是目前的代碼。
let button1 = UIBarButtonItem(image: UIImage(named: "HomeM25.png"), style: .plain, target: self, action: #selector(getter: UIDynamicBehavior.action))
self.navigationItem.rightBarButtonItem = button1
func button() {
self.view.window?.rootViewController?.dismiss(animated: true, completion: nil)
}
我的印象是,如果我改變
action: #selector(getter: action)
我將能夠創建一個函數這個按鈕初始化像這樣
func action() {
self.view.window?.rootViewController?.dismiss(animated: true, completion: nil)
}
以下然而,我在聲明之前,我接受了「使用局部變量」行爲。「我不明白爲什麼這種解釋不會執行/爲什麼當它的唯一用途是一個函數名時,我將不得不建立操作變量?任何幫助,將不勝感激。
更新1:目前代碼
override func viewDidLoad() {
super.viewDidLoad()
let button1 = UIBarButtonItem(image: UIImage(named: "HomeM25.png"), style: .plain, target: self, action: #selector(action))
self.navigationItem.rightBarButtonItem = button1
func action() {
self.view.window?.rootViewController?.dismiss(animated: true, completion: nil)
}
更新1:也不得不使用不同的功能作用回到原來的視圖控制器。
self.navigationController!.popToRootViewController(animated: true)
不幸的是,我仍然收到同樣的錯誤。 – jonpeter
你應該在'viewDidLoad'函數或任何其他函數中執行此操作。發佈完整的代碼。 – Bilal