UITabBarController を使用してボタンを選択する方法は良くあるけど、UITabBar だけでの選択方法の情報が無かった。
とはいえ、やはり実現している方はおられたので参考にさせていただいた。
【文法】UITabBarのItem(UITabBarItem)の切り替え
http://teapipin.blog10.fc2.com/blog-entry-66.html
現在サンプルで作成しているアプリがナビゲーションコントロールも使っている事もあって、TabBar コントロールを取得するまでが、これまたしんどかったが、こちらも情報が有ったので知識を拝借させて頂いた。
UIViewからUIViewControllerを見る
http://ameblo.jp/pyon-prog/entry-11329857939.html
上記 2 つを合わせて KIF 用のテストを以下のように書いた。
-(void) testTabBar0Push {
// TabBar の Delegate を発火させるため ViewController まで辿る
UIApplication *app = [UIApplication sharedApplication];
UIWindow *window = app.keyWindow;
// rootViewController を取得
UIViewController *uiview = (UIViewController *)window.rootViewController;
// NavigationController から対象の ViewController を取得
UINavigationController *navigationController = [uiview.childViewControllers lastObject];
NSMutableArray *viewControllers = [NSMutableArray arrayWithArray:navigationController.viewControllers];
ViewController *view = (ViewController *)[viewControllers objectAtIndex:0];
// TabBar
UITabBar *tabbar = (UITabBar *)[tester waitForViewWithAccessibilityLabel:@"tabBar"];
UITabBarItem *item = [tabbar.items objectAtIndex:0];
// 選択
[tabbar setSelectedItem:item];
[view tabBar:tabbar didSelectItem:item];
// 確認用コードを以下に書く
...
}
どう考えても力業過ぎてコレで良いのか?と思うがひとまずの動きが出来ているので良しとしようと思う。
今後もっとスマートな方法があれば、また別の記事で書こうと思う。
0 件のコメント:
コメントを投稿