【发布时间】:2018-07-25 10:10:32
【问题描述】:
我创建了 CustomNavigationController 并添加了一些常用方法来添加 UIBarButtonItems 到它。现在我想从我的各种视图控制器中调用这些方法。
所以我的问题是 - 如何从任何其他 viewController 调用属于 customNavigationController 的方法。
我可以通过以下方式在 objectiveC 中实现这一点:
[(CustomNavigationController *)self.navigationController addLogoutButtonWithVC:self actionLogoutHandler:@selector(actionLogoutHandler)];
其中“addLogoutButtonWithVC”是属于CustomNavigationController的方法。
我在 Swift 中尝试了以上几行,但没有运气。
[注意:我已经在 storyboard 中将 NavigationController 替换为 CustomNavigationController,所以现在所有的 navigationControllers 都只指向 CustomNavigationController]
"更新:在 CustomNavigationController 中声明 addLogoutButtonWithViewController 和 actionLogoutHandler"
func addLogoutButtonWithViewController(viewCont : UIViewController , selLogout : Selector) {
currentController = viewCont
var barButtonItem : UIBarButtonItem?
barButtonItem = UIBarButtonItem(image: UIImage(named: "Logout.png"), style: UIBarButtonItemStyle.plain, target: self, action: Selector("actionLogoutHandler"))
self.navigationController?.navigationItem.rightBarButtonItem = barButtonItem
}
@objc func actionLogoutHandler() {
print("Inside logout")
currentController?.navigationController?.popToRootViewController(animated: true)
}
非常感谢您在这方面的任何帮助。
【问题讨论】:
标签: ios swift uinavigationcontroller uinavigationbar