在 AppDelegate 之外,在我基本上对它进行 performSegueWIthIdentifier 之前,如何在 UINavigationController 中包含一个 UIViewController?
Outside of AppDelegate, how do I contain a UIViewController in UINavigationController before I basically `performSegueWIthIdentifier` to it?
我理解 AppDelegate 中的概念。
基本情况是这样的:
let mainStoryboard: UIStoryboard = UIStoryboard(name: “Main”, bundle: nil)
var mainViewController = mainStoryboard.instantiateViewControllerWithIdentifier(
“MainViewController”) as! UIViewController
var navController = UINavigationController(rootViewController: mainViewController)
self.window?.rootViewController = navController
self.window?.makeKeyAndVisible()
这将成功地使您的 mainViewController 成为 NavigationController 并像这样运行。
我不想在 AppDelegate 中执行此操作。
我有一个名为 A 的 UIViewController,不 包含在 UINavigationController 中。从 A,我现在所做的是 performSegueWithIdentifier
到另一个名为 B 的 UIViewController。我想 以编程方式 使 B 包含在 UINavigationController 中。我不想在情节提要中实现这一点。这必须以编程方式完成。
我想我必须使用 mainStoryboard.instantiateViewControllerWithIdentifier(...)
来实例化 B,然后将其包装在 A 某处的 UINavigationController 中(最好是我计划转到 B 的地方)。然后,除了 performSegueWithIdentifier
,我还能到达 B?因为如果我执行 segue,那么它不会转到我包装在 UINavigationController 中的 B。
我希望这不会太复杂,但如果有任何不合理的地方,我可以提供详细信息。
除了实际显示新的视图控制器之外,您可以执行此操作的一种方法类似于您在代码示例中使用的方法。假设你在视图控制器 A 中有一个方法应该显示视图控制器 B,你可以这样做:
func showViewControllerB() {
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let viewControllerB = mainStoryboard.instantiateViewControllerWithIdentifier("ViewControllerB") as! ViewControllerB
let navController = UINavigationController(rootViewController: viewControllerB)
presentViewController(navController, animated: true, completion: nil)
}
我理解 AppDelegate 中的概念。
基本情况是这样的:
let mainStoryboard: UIStoryboard = UIStoryboard(name: “Main”, bundle: nil)
var mainViewController = mainStoryboard.instantiateViewControllerWithIdentifier(
“MainViewController”) as! UIViewController
var navController = UINavigationController(rootViewController: mainViewController)
self.window?.rootViewController = navController
self.window?.makeKeyAndVisible()
这将成功地使您的 mainViewController 成为 NavigationController 并像这样运行。
我不想在 AppDelegate 中执行此操作。
我有一个名为 A 的 UIViewController,不 包含在 UINavigationController 中。从 A,我现在所做的是 performSegueWithIdentifier
到另一个名为 B 的 UIViewController。我想 以编程方式 使 B 包含在 UINavigationController 中。我不想在情节提要中实现这一点。这必须以编程方式完成。
我想我必须使用 mainStoryboard.instantiateViewControllerWithIdentifier(...)
来实例化 B,然后将其包装在 A 某处的 UINavigationController 中(最好是我计划转到 B 的地方)。然后,除了 performSegueWithIdentifier
,我还能到达 B?因为如果我执行 segue,那么它不会转到我包装在 UINavigationController 中的 B。
我希望这不会太复杂,但如果有任何不合理的地方,我可以提供详细信息。
除了实际显示新的视图控制器之外,您可以执行此操作的一种方法类似于您在代码示例中使用的方法。假设你在视图控制器 A 中有一个方法应该显示视图控制器 B,你可以这样做:
func showViewControllerB() {
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let viewControllerB = mainStoryboard.instantiateViewControllerWithIdentifier("ViewControllerB") as! ViewControllerB
let navController = UINavigationController(rootViewController: viewControllerB)
presentViewController(navController, animated: true, completion: nil)
}