代码之家  ›  专栏  ›  技术社区  ›  Andy Kwok

为什么实例化viewcontoller是必要的?

  •  0
  • Andy Kwok  · 技术社区  · 8 年前

    为什么我不能使用类似的方法创建视图控制器对象 resultVC = ResultViewController() 而不是按照下面的方式。

            let storyboard = UIStoryboard (name: "Main", bundle: nil)
            let resultVC = storyboard.instantiateViewController(withIdentifier: "ResultViewController") as! ResultViewController
    
            // Communicate the match
            resultVC.match = self.match
            self.navigationController?.pushViewController(resultVC, animated: true)
    
    3 回复  |  直到 8 年前
        1
  •  1
  •   dahiya_boy    8 年前

    一切都取决于你的逻辑。有三种基本的创建方法 UIViewController .

    1. 故事板: 你有故事板,设计你的VC,并通过故事板实例化它。 正如您在上述代码中所做的那样。

    2. Xib/Nib: 就像故事板一样,你可以使用 xib/nib 设计你的VC。在这里,您只需要按xib名称分配VC。

    3. 在程序上:

    Which is more efficient way? StoryBoard or XIB?

    如果你还不清楚,那就去问。

        2
  •  0
  •   Taras Chernyshenko    8 年前

    在应用程序中以编程方式操作和显示。之前 您可以使用此方法检索视图控制器,您必须 在接口中用适当的标识符字符串显式标记它 建设者

    所以,你不仅仅是分配你的类,而是将你的类与你的 Interface Builder .

    无论如何,您可以根据需要创建控制器 resultVC = ResultViewController() 但您应该在代码中创建所有UI,而不是使用 界面生成器

        3
  •  0
  •   Ali Beadle    8 年前

    使用 resultVC = ResultViewController() 将创建ResultViewController类型的视图控制器,但没有指向情节提要的任何链接,这对您来说不太可能有任何用处(如果没有获得这些链接,为什么要使用情节提要?)。您需要从故事板中实例化它以获得这些链接。