我正在为iOS 7更新我的应用程序,我发现了一个奇怪的问题.我正在展示一个包含在UINavigationController中的UIViewController UIModalTransitionStyleFlipHorizontal.
在iOS 6中它工作正常,但在iOS 7中,导航栏在转换后反弹.这与状态栏有关吗?我已将主导航栏的半透明度设置为NO.
在Info.plist中,基于View控制器的状态栏外观设置为NO.
这是一个GIF,在最小的演示应用程序中显示问题:

这是我的代码:
feedNavigationController = [[UINavigationController alloc] init];
feedNavigationController.navigationBar.translucent = NO;
SettingsViewController *settingsVC = [[SettingsViewController alloc] init];
feedNavigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[feedNavigationController setViewControllers:[NSArray arrayWithObjects:settingsVC, nil]];
[self presentViewController:feedNavigationController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud) cocoa-touch uiviewcontroller uinavigationcontroller ios uimodaltransitionstyle
我试图模态呈现如下的视图控制器:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"addPopover"];
vc.view.backgroundColor = [UIColor clearColor];
self.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentModalViewController:vc animated:YES];
Run Code Online (Sandbox Code Playgroud)
现在使用UIModalPresentationCurrentContext手段我可以使用透明背景显示此视图,并查看新视图背后的另一个视图.然而,它阻止我能够通过转换呈现它.
有什么想法吗?或者我如何解决这个问题?谢谢.
iphone objective-c ipad uimodaltransitionstyle uimodalpresentationstyle
对于UIViewController,我们有UIModalTransitionStyle和UIModalPresentationStyle
问题是它们有什么区别?
uiviewcontroller uimodaltransitionstyle uimodalpresentationstyle
我有一个UIView,当它出现时使用UIModalTransitionStylePartialCurl过渡样式在模态视图中使用.这个UIView包含一个UIButton.奇怪的是,每当视图出现时,当主页面向上移动到窗口顶部时,模态视图上的按钮会自动动画,文本似乎从其自身的中心键入到按钮上.这个动画的动作有点分散注意力.
为什么会这样?有什么方法可以预防吗?
UIButton确实使用自定义背景,但它在XIB中为模态视图定义,并且不使用我自己的任何特殊子类.这是一个标准按钮.
什么是(NSTimeInterval)durationfor 的默认值UIModalTransitionStyleFlipHorizontal,它与-[UIViewController presentModalViewController:animated:]?有关?
我知道有四种类型的UIModalTransitionStyles,但我不想使用它们中的任何一种.
但是,此代码不起作用:
@IBAction func button(sender: AnyObject) {
let modalView = ViewController()
let storyboard = UIStoryboard(name: "Universal", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("ViewController") as UIViewController
modalView.modalTransitionStyle = nil // Error: type 'UIModalTransitionStyle' does not conform to protocol 'NilLiteralConvertible'
self.presentViewController(vc, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
每当我没有指定时modalTransitionStyle,编译器就会modalTransitionStyle从Storyboard文档中获取UIViewController.
我怎么能设置不modalTransitionStyle?
我正在使用UIViewController,我使用presentModalViewController:controllerr animated:YES来呈现它,但我想它是否会从屏幕顶部向下滑动而不是从底部向下滑动,任何方式都可以这样做?
iphone transition uiviewcontroller uiview uimodaltransitionstyle
ios ×4
iphone ×2
animation ×1
cocoa-touch ×1
duration ×1
ipad ×1
objective-c ×1
swift ×1
transition ×1
uibutton ×1
uikit ×1
uiview ×1