Swift 使用self.present调用VC时未显示navigationItem
需要帮助,因为我现在挣扎了几天 我有一个VC,带有一个名为from viewDiDLoad的导航项:Swift 使用self.present调用VC时未显示navigationItem,swift,uiviewcontroller,uinavigationitem,Swift,Uiviewcontroller,Uinavigationitem,需要帮助,因为我现在挣扎了几天 我有一个VC,带有一个名为from viewDiDLoad的导航项: override func viewDidLoad() { super.viewDidLoad() self.customization() self.fetchData() } 当使用触发的segue Show调用时,该功能完美无瑕 当我打电话给VC时,我会说: let storyBoard: UIStoryboard = UIStoryboard(name
override func viewDidLoad() {
super.viewDidLoad()
self.customization()
self.fetchData()
}
当使用触发的segue Show调用时,该功能完美无瑕
当我打电话给VC时,我会说:
let storyBoard: UIStoryboard = UIStoryboard(name: "Storyboard", bundle: nil)
let viewController = storyBoard.instantiateViewController(withIdentifier: "SecondVC") as! SecondVC
self.present(viewController, animated: true, completion: nil)
我从控制台获得了访问viewDidLoad and customizations()的方法:
called customization()
但navigationItem未显示
试图从调用方法复制customization()中的方法,这些方法已执行,但也没有显示
你知道这里出了什么问题吗?你必须在演示时添加导航:
let storyBoard: UIStoryboard = UIStoryboard(name: "Storyboard", bundle: nil)
let viewController = storyBoard.instantiateViewController(withIdentifier: "SecondVC") as! SecondVC
let nav = UINavigationController(rootViewController: viewController)
self.present(nav, animated: true, completion: nil)
丹特工作。你可以补充一个简短的解释,为什么这是必要的,因为在其他VC我有,这是不必要的。谢谢当你要推视图控制器时,你需要导航控制器来推VC。因此,导航自动嵌入推送。当我们要展示视图控制器时,我们必须用self(controller)来展示它,而不是导航控制器,所以我们需要将这个导航控制器嵌入到展示的VC中。完美的谢谢最后一件事。如果我试图关闭用你的代码调用的第二个VC,它什么也不会做。要关闭它,我使用:navController.popViewController(动画:true)。如果我使用self.disclose,它会崩溃,你知道吗?你必须关闭viewcontroller,比如:self.disclose(动画:true,完成:nil)Pop将与push一起工作,disclose将与present一起工作
let storyBoard: UIStoryboard = UIStoryboard(name: "Storyboard", bundle: nil)
let viewController = storyBoard.instantiateViewController(withIdentifier: "SecondVC") as! SecondVC
let nav = UINavigationController(rootViewController: viewController)
self.present(nav, animated: true, completion: nil)