iOS アプリがあり、その UI をコードから (単体テストを使用して) テストしたいと考えています。ユーザーのアクティビティとストーリーボードのアクティビティを模倣したい: ボタンのタップ、バーボタンのタップ、テキストフィールドへの書き込み、セグエの実行。
シークに問題があります。NavigationController に TableViewConrtoller があります。まず、コードから TableViewController に到達するにはどうすればよいですか?
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
UINavigationController *nav = [storyboard instantiateInitialViewController];
GoodHabitsViewController *good = [nav.viewControllers objectAtIndex:0];
NSLog(@"%@", good.addButton.title);
[good performSegueWithIdentifier:@"AddGoodHabitSegue" sender:good];
NSLog は正しい値を書き込み、ボタンのタイトルは「追加」で、「追加」はログに表示されます。ただし、 performSequeWithIdentifier の後に次の警告が表示されます。
Warning: Attempt to present <AddGoodHabitViewController: 0x74c8310> on <UINavigationController: 0x764e120> whose view is not in the window hierarchy!
シークを実行する方法、addButton (UIBarButton) をプッシュする方法、AddGoodHabitViewController
(セグエ ポイントの場所) を参照する方法。