Я начал новый проект с IOS 6 ARC и раскадровкиПодкласс UITabBarController в iOS6 с раскадровки
Я сделал очень простое приложение, которое имеет TabBar и 2 просмотров
так что теперь я создал файл TestViewController с расширением UITabBarController, и я помещаю пользовательский класс в раскадровку.
теперь вопрос в том, что я пытаюсь реализовать некоторые методы делегата, как
- (BOOL) tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController;
Но он никогда не называет его. Может ли кто-нибудь помочь?
Я тоже заметил, что если я поместил этот код в первый контроллер, он отлично работает. Кажется, что первый контроллер представления перезаписывает TabBarController раньше. Я очень смущен.
для более тестирования я добавил в TestViewController.m некоторых протоколирований:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
NSLog(@"%@",self.tabBarController.viewControllers);
}
и контроллеры ракурса нуля.
Я даже пытался делать self.tabBarController.delegate = self;
но до сих пор нет решения.
ОК, поэтому я попробовал еще несколько: когда я добавляю '@property (неатомный, копия) NSArray * viewControllers;' в мой файл TestViewController.h я могу получить доступ к контроллерам представления 2! что хорошо ... теперь, когда я перехожу к первому контроллеру представления и получаю свойство tabBarController и устанавливаю делегат на 'self', тогда все работает ... так почему же в панели управления tabbarcontroller у меня не сразу находится контроллер tabbar, который позже используется ??? –