它显示为 UINavigationBar 的半透明属性似乎与其他视图控制器的框架混淆了。
我会推荐以下方法。
创建一个基本视图控制器,其他视图控制器将从该控制器继承,如下所示,
#import "BaseViewController.h"
@interface BaseViewController ()
@end
@implementation BaseViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationController.navigationBar.translucent = NO;
}
其他视图控制器将继承上述 BaseViewController
// 界面
#import <UIKit/UIKit.h>
#import "BaseViewController.h"
@interface ViewController : BaseViewController
@end
// 执行
#import "ViewController.h"
@implementation ViewController
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
// Here translucent property is enabled when the view is about to be disappeared.
// However note that, translucent property needs to be enabled only on those view controllers which has prompt set on their navigation items.
self.navigationController.navigationBar.translucent = YES;
}
其他没有及时实现的视图控制器将照常工作,但它们也需要从 BaseViewController 继承。