私のアプリは、テーブル ビュー コントローラーとビュー コントローラーで構成されています。テーブルビューでセルを押すと、そのビューのツールバーがアニメーションで画面の外に滑り落ち、ビューコントローラーで押し戻すと、ツールバーバーが元の位置に上向きに滑ります。私の問題は、ビューコントローラーにいるときにホームボタンを押してアプリを終了してから戻ってくるというバグを見つけたことです。アプリは元の場所から再開しますが、テーブル ビューに戻ると、ツールバーが元の位置を超えて上に移動します。終了する前にアプリにいるとき、ツールバーのスライドは正常に機能します。そのため、ツールバーを元の位置にリセットするために何かが呼び出され、さらに上にシフトするために追加の y 軸ポイントが追加されているようです。誰かがそれらの方法が何であるか知っていますか?
コード:
ビューコントローラーのviewWillAppearメソッドにこれがあります:
[UIView animateWithDuration:0.7 animations:^{
self.navigationController.toolbar.center = CGPointMake(self.navigationController.toolbar.center.x, self.navigationController.toolbar.center.y + self.navigationController.toolbar.frame.size.height);
} completion:^(BOOL finished){
self.navigationController.toolbar.hidden = YES;
}];
同じビューで、それを消す必要があるときに、これをviewWillDisappearに追加しました:
[[self.navigationController toolbar] setHidden:NO];
[UIView animateWithDuration:1 animations:^{
self.navigationController.toolbar.center = CGPointMake(self.navigationController.toolbar.center.x, self.navigationController.toolbar.center.y - self.navigationController.toolbar.frame.size.height);
} completion:^(BOOL finished){
}];
ツールバーの非表示をアニメーション化する別の方法としてこれを試しましたが、アニメーションはありません:
- (void) viewWillAppear:(BOOL)animated
{
[self.picker setHidden:YES];
[self.navigationController setToolbarHidden:YES animated:YES];
}
- (void) viewWillDisappear:(BOOL)animated
{
[self.navigationController setToolbarHidden:NO animated:YES];
[self.course setValue:self.nameTextField.text forKey:@"courseName"];
[self.course setValue:[NSNumber numberWithInt:[self.creditsTextfield.text integerValue]] forKey:@"courseCredits"];
[self.course setValue:[NSNumber numberWithInt:[self.chaptersTextfield.text integerValue]] forKey:@"courseChapters"];
[self.course setValue:self.gradeTextfield.text forKey:@"courseGrade"];
}