Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 使用self.present调用VC时未显示navigationItem_Swift_Uiviewcontroller_Uinavigationitem - Fatal编程技术网

Swift 使用self.present调用VC时未显示navigationItem

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

需要帮助,因为我现在挣扎了几天

我有一个VC,带有一个名为from viewDiDLoad的导航项:

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)