2012-01-19 6 views
1

В Xcode 4.2 я создал новый проект из шаблона «tabbed application». Теперь я хочу получить доступ к контроллеру панели вкладок в AppDelegate, но это свойство отсутствует. Как решить проблему.Как получить доступ к контроллеру панели вкладок в iOS 5?

В предыдущей версии Xcode, я могу получить доступ к нему, вызвав self.tabBarController, однако, я не мог сделать это в прошивке 5.

ответ

3

Там нет никакой магии происходит с tabBarController свойства, которое появляется в «вкладках приложения «проекты шаблонов. Я предполагаю, что pre-iOS 5 был спроектирован таким образом, чтобы контроллер табуляции был уже настроен как подключенная розетка для вас. Если это не в шаблоне, который вы используете, вам просто нужно добавить свойство самостоятельно. Ниже приведены инструкции о том, как это сделать.

Вам просто нужно добавить объект недвижимости для этого, а затем взять rootViewController от UIWindow в applicationDidFinishLaunching. то есть вы хотите что-то вроде этого в заголовке вашего делегата приложения:

@interface MyAppDelegate : NSObject <UIApplicationDelegate> 
... 
@property (nonatomic, strong) UITabBarController *tabBarController; 
... 
@end 

Затем синтезируют его в реализации приложение делегата и захватить его из rootViewController:

@implementation MyAppDelegate 

@synthesize tabBarController; 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    self.tabBarController = (UITabBarController*)self.window.rootViewController; 
    return YES; 
} 

@end 
+0

вы должны инициализировать метод UITabBarDelegate @interface MyAppDelegate: NSObject Hiren

+0

У вас нет * have * для этого. Только если вы хотите быть его делегатом. – mattjgalloway

+0

@mattjgalloway, в iOS 5 и Xcode 4.2, я не смог найти MainWindow.xib, и я использую раскадровку. Вы используете Xcode 4.2? – user403015

1

если u're с помощью 4.2, я уверен, что на AppDelegate, его автоматически добавляется

@property (strong, nonatomic) UITabBarController *tabBarController; 

и может получить доступ к нему в файле реализации с помощью метода u've был использованием, self.tabBarController

просто убедитесь, что он правильно синтезируют на файле реализации и и писать код в собственном теле метода

им жаль, но им не очень понятно, что ваша проблема

+0

Я использую раскадровку, нет свойства UITabBarController. – user403015

+0

, то вы можете легко добавить свойство, как указано выше в заголовочном файле, по крайней мере, когда вы действительно не знаете, что делаете, не отклоняйте голосовые ответы, которые вам не понятны, это показывает ваше отсутствие уважения других –

Смежные вопросы