我正在开发一款需要自定义导航项目的应用程序(带有两个标签和活动指示器的标题视图)类似于什么应用程序。我还需要实现委托方法。 App有一个基本导航控制器,所有视图控制器都堆叠在其上。
我创建了一个自定义UIView并将其添加到每个视图控制器中,如下所示:
let myCustomView = MyCustomView()
myCustomView.delegate = self
self.navigationItem.titleView = myCustomView;
有没有办法阻止这样做并在每个视图控制器中监听委托方法?我应该将其添加到appDelegate还是创建自定义导航控制器。实现这一目标的有效方法是什么?
答案 0 :(得分:1)
而不是AppDelegate
尝试创建一个BaseViewController
。之后,为您想要的自定义导航设置创建一个功能。
class BaseViewController : UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func customNavigationTitle() {
let myCustomView = MyCustomView()
myCustomView.delegate = self
self.navigationItem.titleView = myCustomView
}
}
现在将此BaseViewController
用作所有Parent
的{{1}},以便您可以直接访问该功能
ViewController
这样您就可以访问 class ViewController : BaseViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.customNavigationTitle()
}
}
的所有delegate
和其他方法。
希望这会对你有所帮助。