0

在我的 UIViewController viewDidLoad 我有:

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

按钮显示就好了。不,我将另一个视图控制器推入堆栈:

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

当然 Button 仍在显示,所以我尝试将其隐藏在 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 回答