Re: [iPhone] UINavigationController and UINavigationBar
Re: [iPhone] UINavigationController and UINavigationBar
- Subject: Re: [iPhone] UINavigationController and UINavigationBar
- From: Luke the Hiesterman <email@hidden>
- Date: Tue, 8 Dec 2009 16:49:56 -0800
On Dec 8, 2009, at 4:40 PM, Duccio wrote:
> Il giorno 09/dic/2009, alle ore 00.57, Luke the Hiesterman ha scritto:
>
>>
>> On Dec 8, 2009, at 3:51 PM, Mike Abdullah wrote:
>>
>>> Other alternatives:
>>>
>>> - Subclass UINavigationController to return a custom view from -navigationBar.
>>> - Add a custom subview to the nav bar to do your drawing.
>>
>> I recommend neither of these. It's already been brought up that UINavigationController shouldn't be subclassed, and it isn't meant as a container for arbitrary views, either. If you really aren't satisfied with using a tint color for the background, file an ER asking for an API to provide a background image.
>>
>
> So, just to understand, why can I do that through IB but not (legally) via code? The ability to choose a class for the navigation bar in a navigation controller should have been blocked in IB?
>
> You says about change Navigation Bar class to my subclass in IB "recommend avoiding even using this approach in IB", why? Should I read this in documentation or I would have inferred by readonly navigationBar property (because next time I would not ask the list similar question/problem)?
>
> I started working with Cocoa Touch a few days ago and I will not only learn the techniques but also best practices, philosophy and so on...
Yes, the readonly is the key. Using IB to set the class of the navBar can be thought of as a sort of work-around to the issue that a readonly property isn't meant to be directly changed. Note, though, that you can safely modify writeable properties of a readonly property. Example:
UINavigationController has a navigationBar property, which is readonly, so you can't change it, but...
UINavigationBar has a tintColor property which IS writeable, so while you can't provide a different navigationBar, you can modify some properties of the bar itself.
Hope that helps, and I wish you the best writing great iPhone code!
Luke_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden