ボタンのクリックで動的View Controllerを表示する複数のView Controllerがあります。View Controllerのレイアウトは次のとおりです。
「計算ビュー」ビューは、「開始」ボタンが押されるまで何も表示されません。ユーザーが「開始」ボタンを押すと、View Controller 2 の「calculationView」に子 View Controller が表示されます(ここには示されていません)。
View Controller 2 の戻る矢印をクリックすると、ユーザーはタブ バーの項目 1 に戻り、同じ View Controller が CalculationView の View Controller 2 に表示されます。
これで、View Controller 1 の CalculationView のコンテンツがビューの表示から約 1 秒後に表示されることを除いて、すべて正常に動作します。
View Controller 2でcalculationViewをロードする方法は次のとおりです。
- (IBAction)startRunning:(id)sender {
NSLog(@"Start button pressed.");
helper = [[RunsDataHelper helper] init];
// Set this value to true so then other views also display the calculationsView
[helper setRunInProgres:YES];
// Add Calculations View Controller
CalculationViewController *calculationController = [self.storyboard instantiateViewControllerWithIdentifier:@"Calculate"];
[self addChildViewController:calculationController];
calculationController.view.frame = self.calculationView.bounds;
[UIView transitionWithView:self.calculationView
duration:0.4
options:UIViewAnimationOptionTransitionCurlDown
animations:^{
[self.calculationView addSubview:calculationController.view];
}
completion:nil];
[calculationController didMoveToParentViewController:self];
}
runInProgress BOOL を使用してビュー コントローラー 1 に CalculationView を表示する方法を次に示します。
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
helper = [[RunsDataHelper helper] init];
if([helper runInProgres] == YES)
{
//Add Calculations View Controller
CalculationViewController *calculationController = [self.storyboard instantiateViewControllerWithIdentifier:@"Calculate"];
[self addChildViewController:calculationController];
calculationController.view.frame = self.calculationView.bounds;
[self.calculationView addSubview:calculationController.view];
[calculationController didMoveToParentViewController:self];
}
}
質問:
私の質問は、計算ビューがビューコントローラー1と同時に表示されるようにするにはどうすればよいかということです。
また、デザインの質問があります。計算ビューは、すべてのビュー コントローラーの静的な場所に配置されます。runInProgress BOOLに基づいて、すべてのView ControllerにcalculationViewを表示するより良い方法はありますか?