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 件のコメント:
コメントを投稿