因为我在通过故事板创建按钮时遇到了问题,所以我开始通过代码启动一个右导航栏按钮,通过这个问题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)
}然而,我得到的回应是“在声明之前使用局部变量'action‘”。我不明白为什么这种解释不能执行/为什么我必须建立操作变量,而它的唯一用途是函数名?任何帮助都将不胜感激。
更新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)发布于 2017-08-16 11:20:12
应该是#selector(action)。你可以在一个函数中定义函数。将action移出viewDidLoad函数。尝尝这个。
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)
}https://stackoverflow.com/questions/45704511
复制相似问题