presentModalViewController上的不同转换:动画:

Tho*_*son 5 iphone modal-dialog

我提出了一个模态视图控制器,它是一个标签栏控制器,里面有导航控制器.

问题是我的第一个视图有黑色背景,我希望新视图有白色背景.

这意味着我要么必须让模态视图控制器具有透明背景(直到它显示白色背景时完成"向上滑动"动画)或者我必须将导航控制器背景设置为白色才能使其成为非白色背景透明.

这导致我在导航栏上有一条额外的白色条带(网络状态/电池状态/时间条去了).我无法摆脱这一点.:(

因此,如果我可以将视图翻转,或将其淡入,或者从右侧或左侧滑动它,或者在某些情况下更好一些.

有没有办法做到这一点?或者我只需要将"动画:"设置为NO?

谢谢

Tus*_*121 10

我不明白你对不同颜色背景的困境是什么.视图上的不透明背景,特别是动画背景,使应用程序运行得更快.现在关于转换,在调用presentModalViewController之前,插入以下行之一:

modelViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
modelViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
modelViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
modelViewController.modalTransitionStyle = UIModalTransitionStylePartialCurl;
Run Code Online (Sandbox Code Playgroud)

以上任何一个都将改变过渡样式(尽管PartialCurl将导致最后一个视图的白色位仍然出现在顶角;它似乎没有记录,尽管它被地图应用程序使用).您可能必须使用modalTransitionStyle设置的内容.

从左侧或右侧滑入是导航控制器的一部分.使用导航控制器时,更改背景可能不是您想要的.

此外,无论您转换到哪种方式,模型视图上方的额外条带都会显示出来.这很烦人,但可能会出现如下情况:

- (void)viewDidLoad {
    [super viewDidLoad];
    navigationController.view.frame = CGRectMake(0, 0, 320, 460); //<--This line
}
Run Code Online (Sandbox Code Playgroud)