Как получить tabController из подпредставления во вкладках - PullRequest
0 голосов
/ 18 августа 2011

У меня есть класс: myTabController, в этом классе у меня есть UITabBarController, который имеет 4 подпредставления в этом UITabBarController.

Теперь я в своем первом подпредставлении, скажем, это tab1, я могу вызвать self.parentViewControllerчтобы получить UITabBarController, а этот UITabBarController принадлежит myTabController, но как я могу получить myTabController?Причина Я хочу получить доступ к некоторым данным в myTabController.

Спасибо, С уважением,

1 Ответ

2 голосов
/ 18 августа 2011

Исходя из вашей формулировки, я предполагаю, что вы не подкласс UITabBarController.Я бы предложил иметь свойство на всех четырех контроллерах представления, что-то вроде theTabController, которое указывает на экземпляр вашего класса.Объявите это свойство следующим образом (в подпредставлениях):

@class myTabController;
...
@interface MySubview : UIView {
    ...
    myTabController * theTabController;
    ...
}
...
@property (nonatomic, assign) myTabController * theTabController;

Затем в реализации каждого подпредставления добавьте оператор синтеза.Также неплохо импортировать заголовок myTabController в .m, хотя у нас есть @class в заголовке подпредставления.Я использовал @class для предотвращения циклического импорта.

#import "myTabController."
...
@implementation MySubview
@synthesize theTabController;
...
@end

Начиная с myTabController, вам нужно установить это свойство для каждого подпредставления следующим образом:

subview1.theTabController = self;
subview2.theTabController = self;
...
subviewx.theTabController = self;

Наконец, используйтеtheTabController свойство sub внутри каждого подпредставления с self.theTabController.

Я также должен отметить: никогда не стоит иметь имя класса, начинающееся со строчной буквы.myTabController действительно должно быть MyTabController.

...