1

この質問は少しばかげているように思えるかもしれませんが、私はしばらくの間答えを探していましたが、見つけることができませんでした. そこで、クライアント間で Parse プッシュ通知を統合するアプリを開発しています。アプリにはUITabBarControllerTabBarViewControllerカスタムクラスとして)がありstoryboard、アプリのある時点で(アプリが閉じているときにプッシュを受信すると)、次のようなさらなるアクションのためにを設定する必要がTabBarViewControllerありRootViewControllerます[TabBarController doSomething];

要約すると、私は自分の 3 番目のタブ (index:2) を表示しようとしており、クラスTabBarViewControllerで見つかった関数を実行して、3 番目のタブのビューに内容を表示しようとしています。TabBarViewController

私は次のことをしようとしています:

didFinishLaunchingWithOptions: メソッドの私の AppDelegate.m で:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
TabBarViewController* tabBarController = (TabBarViewController*)[storyboard instantiateViewControllerWithIdentifier:@"<StoryboardIDofTabBarViewController>"];
tabBarController.selectedIndex = 2;

self.window.rootViewController = tabBarController;
[self.window makeKeyAndVisible];

[tabBarController doSomething];    

ソリューションには委任が必要だと感じていますが、それを実装する方法が本当にわかりません。私のコントローラーはナビゲーション コントローラーに埋め込まれていないため、TabBarController.

どんな助けでも大歓迎です。ありがとうございました

4

1 に答える 1

1

これは、アプリケーション didFinishLaunchingWithOptions:(NSDictionary *)launchOptions で私にとって完璧に機能します

AppDelegate.h

@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;

AppDelegate.m

UIStoryboard *storyboard = [[UIStoryboard alloc] init];
storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];

UIViewController *tabBarControllerView = [storyboard instantiateViewControllerWithIdentifier:@"tabBarController"]; 
[self.window setRootViewController:tabBarControllerView];
tabBarController = (UITabBarController *)self.window.rootViewController;
tabBarController.delegate = (id)self;
tabBarController.selectedIndex = 2;

** 「instantiateViewControllerWithIdentifier」がストーリーボードのストーリーボード ID と一致することを確認します。お役に立てれば。

ストーリーボードのスクリーンショット: ここに画像の説明を入力

于 2014-11-17T21:02:21.933 に答える