自定义导航项虽然在应用程序之外

时间:2016-06-26 05:48:19

标签: ios swift

我正在开发一款需要自定义导航项目的应用程序(带有两个标签和活动指示器的标题视图)类似于什么应用程序。我还需要实现委托方法。 App有一个基本导航控制器,所有视图控制器都堆叠在其上。

我创建了一个自定义UIView并将其添加到每个视图控制器中,如下所示:

let myCustomView = MyCustomView()
myCustomView.delegate = self
self.navigationItem.titleView = myCustomView;

有没有办法阻止这样做并在每个视图控制器中监听委托方法?我应该将其添加到appDelegate还是创建自定义导航控制器。实现这一目标的有效方法是什么?

1 个答案:

答案 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和其他方法。

希望这会对你有所帮助。