我提出了一个模态视图控制器,它是一个标签栏控制器,里面有导航控制器。
问题是我的第一个视图有黑色背景,我希望新视图有白色背景。
这意味着我要么必须让模态视图控制器具有透明背景(直到它显示白色背景时完成“向上滑动”动画)或者我必须将导航控制器背景设置为白色以便制作它不透明。
这导致我在导航栏上有一条额外的白色条带(网络状态/电池状态/时间条去了)。我无法摆脱这一点。 :(
因此,如果我可以将视图翻转,或将其淡入,或者从右侧或左侧滑动它或者在某种程度上更加美观。
有没有办法做到这一点?或者我只需要将“动画:”设置为NO?
由于
答案 0 :(得分:10)
我不明白你对不同颜色背景的困境是什么。视图上的不透明背景,特别是动画背景,使应用程序运行得更快。现在关于转换,在调用presentModalViewController之前,插入以下行之一:
modelViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
modelViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
modelViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
modelViewController.modalTransitionStyle = UIModalTransitionStylePartialCurl;
以上任何一个都会改变过渡样式(虽然PartialCurl会导致最后一个视图的白色位仍然出现在顶角;它似乎没有记录,尽管它被地图应用程序使用)。您可能必须使用modalTransitionStyle设置的内容。
从左侧或右侧滑入是导航控制器的一部分。使用导航控制器时,改变背景可能不是您想要的。
此外,无论你转换到哪种方式,模型视图上方的额外条带都会显示出来。这很烦人,但它可能会如下:
- (void)viewDidLoad {
[super viewDidLoad];
navigationController.view.frame = CGRectMake(0, 0, 320, 460); //<--This line
}