presentModalViewController上的不同转换:动画:

时间:2010-09-07 13:34:03

标签: iphone modal-dialog

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

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

这意味着我要么必须让模态视图控制器具有透明背景(直到它显示白色背景时完成“向上滑动”动画)或者我必须将导航控制器背景设置为白色以便制作它不透明。

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

因此,如果我可以将视图翻转,或将其淡入,或者从右侧或左侧滑动它或者在某种程度上更加美观。

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

由于

1 个答案:

答案 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
}