2017-07-21 20 views
0

我有一个导航栏(不是导航控制器导航栏)。在左边,我拖动了一个Bar Button Item,并用IBActon将它连接到了我的视图控制器。该行动执行:Bar按钮项无法执行操作Swift

navigationController?.popViewController(animated: true). 

再有,我有嵌入分层结构提供导航控制器,但我隐藏导航控制器导航栏,用我自己的。我不知道这是否与它有关。但是“酒吧按钮项”操作并未一致执行。有时,当我点击它时,视图被弹出(删除),其他时间根本没有任何反应。如果有人经历了这一点,并有任何见解,我会非常感激!

相关代码:

@IBAction func backTapped(_ sender: Any) { 
    navigationController?.popViewController(animated: true) 
} 
+0

为此添加相关的代码。 – KKRocks

+0

你的酒吧按钮的框架是什么?酒吧按钮中有一个常见的陷阱,有时它们太小而无法点按。特别是如果你正在使用设备。 – erenkabakci

+0

添加调试点并检查该方法调用与否? – KKRocks

回答

0

所以我发现这个问题。这是我在视图控制器之间进行切换的方式。导航到我正在使用的应用程序

let storyboard = UIStoryboard(name: "Settings", bundle: nil) 
    let viewControllerSettings = storyboard.instantiateViewController(withIdentifier: "SettingsID") as! SettingsViewController 
    self.show(viewControllerSettings, sender: self) 

然而,这是问题所在。要正确导航到新故事板,同时保持与故事板中导航控制器的连接,您必须继续导航到导航控制器本身。

let storyboard = UIStoryboard(name: "Settings", bundle: nil) 
    let viewControllerSettings = storyboard.instantiateViewController(withIdentifier: "SettingsNavControllerID") as! UINavigationController 
    self.show(viewControllerSettings, sender: self) 

这样我们在故事板的segueing并通过它去加了storyboardID到导航控制器:所以应该等来进行。如果没有通过导航控制器继续搜索,则无法执行

navigationController?.popViewController(animated: true). 

因为导航控制器未正确加载。