0

私のUIViewControllerviewDidLoadには、次のものがあります。

myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
...
myButton.frame = CGRectMake(0, 2, 40, 40);
[self.navigationController.navigationBar addSubview:myButton];

ボタンは問題なく表示されます。いいえ、スタックに別のビューコントローラーをプッシュします。

 [self.navigationController pushViewController:vc animated:YES];

もちろん、ボタンはまだ表示されているので、viewWillDisappearに非表示にして、viewWillAppearに表示してみますが、トランジションが正しく表示されません。スーパーコールの順序を非表示のコールと入れ替えても、正しく見えません。

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    myButton.hidden = YES;
}

- (void)viewWillAppear:(BOOL)animated {
    myButton.hidden = NO;
    [super viewWillAppear:animated];
}

この移行を正しく表示するにはどうすればよいですか?ありがとうございました。

4

1 に答える 1

0

サブビューとしてボタンを追加する代わりに、次のようなものを使用します

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:YourCustomView];
self.navigationItem.rightBarButtonItem = barButton;
于 2012-11-07T19:16:14.017 に答える