using UINavigationBar without UINavigationControll

2019-02-09 11:10发布

I want a UINavigationBar at the top of my UIWebView but I want to control by hand the title, the back button, what the back button does - etc. In other words I never want to push or pop views. I just want to change the UINavigationBar contents as the user clicks around the web view.

Where I'm up to is I added the UINavigationBar to my superView and made it 44 pixels tall. How do I set the title since I have no navigationItem? How would I set a fake back button up?

I would appreciate any pointers. I realise this is quite weird what I'm doing.

Thanks :)

3条回答
三岁会撩人
2楼-- · 2019-02-09 11:20

If you dont want the navigationbar as-is youll have to roll your own. if youre ok with the built in animations for pushing and popping items(dont confuse with push/pop of viewcontrollers) to the bar you would then set your UINavigationBarDelegate and use its methods for controlling how things push/pop, etc.

查看更多
姐就是有狂的资本
3楼-- · 2019-02-09 11:29

The answer, if anyone's interested, is in the class reference of UINavigationBar.

When you use a navigation bar as a standalone object, you are responsible for providing its contents. Unlike other types of views, you do not add subviews to a navigation bar directly. Instead, you use a navigation item (an instance of the UINavigationItem class) to specify what buttons or custom views you want displayed. A navigation item has properties for specifying views on the left, right, and center of the navigation bar and for specifying a custom prompt string.

In short, use a UINavigationItem and apply it by "pushNavigationItem" on the UINavigationBar.

I created a subclass of UINavigationBar called StaticNavigationBar which I can then load with any state by putting the appropriate UINavigationItem's on it. Thanks for all your answers people.

查看更多
在下西门庆
4楼-- · 2019-02-09 11:47

You can have that UINavigationBar as an outlet and then you can manupulate it as you want. So you don't have to refer to somebody's navigation item. It'll be an independent (sort of) object on your view.

查看更多
登录 后发表回答