在Xcode 4.2中,我从“选项卡式应用程序”模板创建了一个新项目。现在我想访问AppDelegate中的标签栏控制器,但缺少此属性。如何解决问题。
在Xcode的早期版本中,我可以通过调用self.tabBarController来访问它,但是,我无法在iOS 5中执行此操作。
答案 0 :(得分:3)
“选项卡式应用程序”模板项目中出现的tabBarController
属性没有任何神奇之处。我想iOS 5之前的模板设计是为了让标签控制器已经设置为你的连接插座。如果它不在你正在使用的模板中,那么你只需要自己添加属性。以下是如何执行此操作的说明。
您只需为其添加一个属性,然后从rootViewController
中的UIWindow
抓取applicationDidFinishLaunching
。即你在你的app delegate标题中想要这样的东西:
@interface MyAppDelegate : NSObject <UIApplicationDelegate>
...
@property (nonatomic, strong) UITabBarController *tabBarController;
...
@end
然后在您的app委托实现中对其进行综合,并从rootViewController
:
@implementation MyAppDelegate
@synthesize tabBarController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.tabBarController = (UITabBarController*)self.window.rootViewController;
return YES;
}
@end
答案 1 :(得分:1)
如果您使用4.2,我很确定在appDelegate上,它会自动添加
@property (strong, nonatomic) UITabBarController *tabBarController;
你可以使用你一直在使用的方法,self.tabBarController
在实现文件上访问它只需确保它在实现文件上正确合成,并将代码编写在正确的方法体中
我很抱歉,但我不太清楚你的问题是什么