无法在Xcode(iPad)中更改模态视图的显示和过渡样式

时间:2011-10-12 13:29:09

标签: ios xcode uipopovercontroller modalviewcontroller

我目前在模态视图和弹出窗口方面遇到了一些麻烦。这可能是同样的问题,但我不确定。

我对模态视图的问题是我无法更改动画或过渡样式。例如,我写了

self.modalPresentationStyle = UIModalPresentationPageSheet;
self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:IpModal animated:YES];

但是模态视图仍然以全原始过渡样式显示为全屏。

此外,我对弹出窗口的问题非常相似。即使我使用“NO”作为参数调用dismissPopover:animated:方法,转换仍然是动画的。

提前致谢。

4 个答案:

答案 0 :(得分:25)

modalPresentationStylemodalTransitionStyle适用于视图控制器将以模态方式呈现,而不是执行呈现的控制器。

您的代码应为

IpModal.modalPresentationStyle = UIModalPresentationPageSheet;
IpModal.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:IpModal animated:YES];

答案 1 :(得分:4)

我是在自定义segue中做到的。

UIViewController* src = self.sourceViewController;
UIViewController* dst = self.destinationViewController;

src.modalPresentationStyle = UIModalTransitionStyleFlipHorizontal;
dst.modalPresentationStyle = UIModalTransitionStyleFlipHorizontal;
[src presentModalViewController:dst animated:YES];

答案 2 :(得分:3)

#import yourViewController.m //already present
#import destinationVieController.m //to be added by programmer

//custom function to call destination controller

-(void)callDestinationViewController{

    destinationViewController *dest = [[destinationViewController alloc] initWithNibName:@"destinationViewController" bundle:nil];

    dest.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentModalViewController:dest animated:YES];

  }

//custom function can be called on event fire or action call

希望这有帮助!

答案 3 :(得分:1)

也许你可以尝试使用这两种方法中的一种来呈现弹出控制器,具体取决于你想要它出现的位置,而不是presentModalViewController:animated:

– presentPopoverFromRect:inView:permittedArrowDirections:animated:
– presentPopoverFromBarButtonItem:permittedArrowDirections:animated: