【发布时间】:2015-04-15 17:33:52
【问题描述】:
我将导航控制器呈现为弹出框。第一次这样做我可以推送到另一个有任何问题的视图控制器。但是,第二次呈现另一个控制器时,我无法执行推送,因为呈现的控制器的 self.navigationController 为零。这是我用来展示控制器的一段代码
func instantiateEditController(view : UIView) -> UINavigationController
{
let popoverContent = self.storyboard?.instantiateViewControllerWithIdentifier("Edit Controller") as MCMEditController
popoverContent.preferredContentSize = CGSizeMake(320, 480)
let navController = MCMBaseNavigationController(rootViewController: popoverContent)
navController.modalPresentationStyle = UIModalPresentationStyle.Popover
navController.navigationBar.tintColor = UIColor.whiteColor()
let popover = navController.popoverPresentationController
popover?.sourceView = view
popover?.sourceRect = CGRectMake(0, 0, view.frame.size.width, view.frame.size.height)
return navController
}
注意:导航控制器总是出现,但只是在我第一次执行推送时。此代码是用于 iPad 的。
【问题讨论】:
-
navController.popoverPresentationController 属性有什么作用?为什么你试图将这个 popoverPresentationController 的 sourceView 设置为你传递给这个函数的视图?此外,如果您尝试使用 iPad 的弹出框,箭头指向它,您正在寻找的 api 是 UIPopoverController developer.apple.com/library/prerelease/ios/documentation/UIKit/…
-
我正在使用传递给函数的视图作为弹出框的锚
-
@Drmorgan 使用 UIPopoverController 我可以展示我的导航控制器,但错误一直显示,第一次展示我可以推送到另一个控制器,第二次我不能
-
你能展示如何将控制器推送到导航控制器上的代码吗?