开发者

How do I get NavigationController functionality without subclassing?

So my app's core is a tab bar. In each of 3 tabs is a UINavigationController subclass. Each one has a different type of table in it, which when a row is tapped, a detail is shown etc.

I currently have a 3 separate subclasses of UINavigationController, one for each tab. Then when a new tab is pressed, the table's controller is pushed.

I just read that you're not supposed to subclass UINavigationController. I'm not overriding any of UINavigation Controller's functionality, but I am overriding it's UIViewController functionality in viewDidLoad. Honestly that's just about it. It seems pretty silly, but Im unclear on how to get the Navigation Controller functionality without subclassing the way I have.

So how am i supposed to have a UINavigationController that I don't subclass? What is the approach that you're supposed to take to switch out the views when a tab is selected?

I'm pretty much a noob. Will Apple reject my app for subcalssing UINavigationController if im only overriding viewdidload?

I've heard folks say not to subclass UINavigationController, and instead 'present it modally.' I have used modal presentation a little bit, but I 开发者_JAVA技巧honestly dont' quite get how it would apply...

Thanks for your help!


What are you doing in viewDidLoad? What about do it in root view controller, not in navigation controller?

P.S. I think Apple will not reject your app for subclassing UINavigationController.


You should use categories to add extra functionality like that. It would look something like this:

@implementation UINavigationController (CustomViewDidLoad)

- (void)viewDidLoad
{
    //code goes here
}

@end

You can add this to the bottom of the file that initializes the navigationcontroller

More info about categories (at the bottom): http://cocoadevcentral.com/d/learn_objectivec/

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜