2012-01-19 9 views
1

Xcode 4.2では、「タブ付きアプリケーション」テンプレートから新しいプロジェクトを作成しました。今AppDelegateのタブバーコントローラにアクセスしたいが、このプロパティは不足している。どのように問題を解決する。 Xcodeの以前のバージョンでiOS 5のタブバーコントローラにアクセスするには?

、私はしかし、私はiOSの5

答えて

3

にタブ付きアプリケーション」に表示されますtabBarControllerプロパティで起こっ魔法はありませんことを行うことができませんでした、self.tabBarControllerを呼び出すことによってそれにアクセスすることができます"テンプレートプロジェクト。私はpre-iOS 5のテンプレートが設計されているので、タブコントローラーが既にあなたのために接続されたコンセントとして設定されていると思います。それがあなたが使用しているテンプレートにない場合は、プロパティを自分で追加するだけです。以下は、これを行う方法の説明です。

プロパティを追加して、UIWindowrootViewControllerapplicationDidFinishLaunchingに置きます。つまり、あなたはあなたのアプリケーションのデリゲートヘッダにこのような何かをしたい:

@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

何であるかの非常に明確ではありません申し訳ありませんが、イム

イムコードを書きます@interface MyAppDelegate:NSObject Hiren

+0

あなたは*持っていない*。あなたがその代理人になりたいならば。 – 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はu'veが使用されてメソッドを使用して実装ファイルにアクセスすることができます追加したことをかなり確信して、self.tabBarController

ちょうどそれが正しく実装ファイルに合成されますことを確認して、uは、適切なメソッド本体にあなたの問題はあなたがUITabBarDelegateメソッドを初期化する必要があり

+0

私はストーリーボードを使用していますが、UITabBarControllerのプロパティはありません。 – user403015

+0

これで、ヘッダファイルに上記のようにプロパティを簡単に追加することができます。少なくとも、あなたが何をやっているのか分からないときは、投票していない答えをしないでください。他人の敬意 –

関連する問題