ios - 在 UINavigationController 中嵌入 View Controller

标签 ios swift

最初我只是像这样呈现 View 并且它工作正常。

let editSpotVc = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("EditSpotViewController") as! EditSpotViewController

self.presentViewController(editSpotVc, animated: false) { () -> Void in
    editSpotVc.addImage(ImageTransformationUtil.scaleImageTo(newWidth: 1080, image: image))
    editSpotVc.updateMapAndReverseGeocode(photoCoordiantes)
}

我现在需要将 View Controller 嵌入到导航 Controller 中。我的解决方案(如下)不起作用。程序崩溃是因为它在运行 editSpotVC 方法时发现 nil。

let editSpotVc = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("EditSpotViewController") as! EditSpotViewController
let editSpotNavVc = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("EditSpotNavController")

self.presentViewController(editSpotNavVc, animated: false) { () -> Void in
    editSpotVc.addImage(ImageTransformationUtil.scaleImageTo(newWidth: 1080, image: image))
    editSpotVc.updateMapAndReverseGeocode(photoCoordiantes)
}

我怎样才能使这项工作顺利进行?

谢谢!

最佳答案

1. 转到 Storyboard -> 选择要嵌入的 viewController -> 编辑器 -> 嵌入 -> 导航 Controller

2.

let nav = UINavigationController(rootViewController: yourViewController)

在这种情况下,

let editSpotVc = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("EditSpotViewController") as! EditSpotViewController
let navigationController = UINavigationController(rootViewController: editSpotVc)

关于ios - 在 UINavigationController 中嵌入 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33839230/

相关文章:

iphone - 我如何分配应用程序来打开邮件附件

ios - 在 UiTableView didSelectRowAtIndexPath 更新错误的 Cell

ios - 下次启动应用程序时,如何检查数据是否成功存储在 coredata 中? - iOS swift

ios - Swift 面向协议(protocol)的扩展

ios - UITableView 中的 UIPickerView

objective-c - 给定一个具有可选一对一关系的 NSManagedObject,我如何检查它们是否为空?

ios - 使用 Swift 插入后,CoreData 文件不显示任何数据

swift - 更改项目名称后,Apple Mach-O 链接器错误

ios - Swift 通用闭包总和

ios - 项目中相同语言的多个 .string 文件