views:

411

answers:

2

Hi all,

I'm having very annoying problem with UITabBarController's "more" tab controller. It supports rotation to landscape mode by default, but does not propagate the event to it's subviews (or view controllers which are managed by it) by calling appropriate delegate methods, so all controllers under the "more" section can be rotated, which is not what I want - I need just one of them to support autorotation.

The issue is that I cannot find how to override and use custom class for the more tab controller.

Does anybody know how to override more tab controller or make it somehow to call delegate method's on subviews?

thanks much for any tip

A: 

Since the more controller is a private class, there is no public SDK way to do this. The easiest way to solve this would be to re-implement the more controller manually (it's just a very simple UITableViewController)

rpetrich
A: 

Thanks for your answer, but this is no way to go. Actually, more tab controller is private class UIMoreNavigationController, which is subclass of UINavigationController. It's rather a wrapper to controllers which it manages, but it does not behaves like common navigation controller. You cannot access managed controllers for instance, because viewControllers property is always nil (that's what I found about it).

Also, moreNavigationController property of UITabBarController is readonly, so you cannot create your own implementation and set it to it. And that's basically the point of my question.

Sure, I could create my own implementation of tabbar controller, but it's not worth the efforts in the project I'm working on, so I'm looking for some easier and faster way how to overcome this issue.

Any other ideas?

thanks

Matthes