我目前在模态视图和弹出窗口方面遇到了一些麻烦。这可能是同样的问题,但我不确定。
我对模态视图的问题是我无法更改动画或过渡样式。例如,我写了
self.modalPresentationStyle = UIModalPresentationPageSheet;
self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:IpModal animated:YES];
但是模态视图仍然以全原始过渡样式显示为全屏。
此外,我对弹出窗口的问题非常相似。即使我使用“NO”作为参数调用dismissPopover:animated:方法,转换仍然是动画的。
提前致谢。
答案 0 :(得分:25)
modalPresentationStyle
和modalTransitionStyle
适用于视图控制器将以模态方式呈现,而不是执行呈现的控制器。
您的代码应为
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: