在iPad的iOS7上,首先,我设置了一个模态视图控制器,大小为320 * 460,然后,在这个模态视图控制器中,我提出了另一个导航视图控制器,在此之后,导航栏和工具的色调颜色所呈现的导航控制器的条变为灰色。我试图设置导航栏和工具栏的色调,但它不起作用。
然后我尝试直接呈现导航控制器,然后所有色调颜色都在导航栏和工具栏上工作。
我尝试使用导航栏和工具栏的barTintColor
属性,它可以正常工作。
我不知道会发生什么。
更新
首先,我定义了一个视图控制器:modalViewController 现在的模态视图控制器是这样的:
if (DeviceIsPad()) // DeviceIsPad is a method defined somewhere to tell that the device is an iPad.
modaViewController.modalPresentationStyle = UIModalPresentationFormSheet;
//here self is a normal view controller
[self presentViewController:modalViewController animated:YES completion:NULL];
其次,定义导航视图控制器:navigationController 像这样出现导航控制器:
if (DeviceIsPad())
navigationController.modalPresentationStyle = UIModalPresentationCurrentContext;
// here self means the modalViewController mentioned above
[self presentViewController:navigationController animated:YES completion:nil];
我在navigationController的'viewDidLoad'方法中设置导航栏和工具栏栏项。
默认情况下,当导航视图控制器出现时,所有工具栏按钮项(这些项目仅使用Cancel
,OK
这样的基本标题构建)将变为灰色。
与此同时,我尝试设置tintColor
和tool bar
的{{1}}。使用实例方法和外观方法(如navigation bar
)。但它仍然无效。
然后我尝试直接从普通视图控制器呈现上面提到的[[UIToolBar appearance] setTintColor:[UIColor blueColor]]
navigationViewController
样式,然后导航栏和工具栏的所有tintColor变成蓝色(系统蓝色)颜色)。
答案 0 :(得分:7)
这是因为Apple认为我们不会提供超过1个视图控制器并将背景和所有条形按钮项目(不确定原因)调暗为默认行为以将焦点放在最前面的视图上。
要解决此问题,您只需在DidFinishLaunchingWithOptions的应用程序窗口中强制tintAdjustmentMode为Normal。
self.window.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;
答案 1 :(得分:1)
尝试设置
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"NavBarBGTile.png"] forBarPosition:UIBarPositionTopAttached barMetrics:UIBarMetricsDefault];
其中NavBarBGTile.png是1X1px平铺图像,其颜色为导航栏颜色
另外
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
用你想要的任何东西替换白色
这些行应该在应用程序启动开始时放置
答案 2 :(得分:0)
试用此代码:
UIView *masterView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 260)];
UIToolbar *pickerToolbar = [self createPickerToolbarWithTitle:@"Surgeons"];
pickerToolbar.barTintColor= [UIColor blueColor];
pickerToolbar.translucent=YES;
[masterView addSubview:pickerToolbar];
[masterView addSubview:pickerViewObj];
UIViewController *viewController = [[UIViewController alloc] initWithNibName:nil bundle:nil];
viewController.view = masterView;
viewController.contentSizeForViewInPopover = viewController.view.frame.size;
self.popoverController =[[UIPopoverController alloc] initWithContentViewController:viewController];