Ios 以编程方式设置根VC

Ios 以编程方式设置根VC,ios,swift,appdelegate,Ios,Swift,Appdelegate,我是一个敏捷的初学者,所以对我放松点。我的问题会很具体 我删除了故事板(我想学习如何使用Swift以编程方式构建UI) 以下代码位于AppDelegate.swift中 我在项目浏览器中也有ViewController.swift 首先,除了UINavigationController,还有没有其他方法可以使用。。?或者必须有一个UINavigationController 如果不是必须的,我怎么能将其引用到ScrollView(例如…) 第二,随着对苹果自己指南的进一步研究,他们说我也可以使用

我是一个敏捷的初学者,所以对我放松点。我的问题会很具体

我删除了故事板(我想学习如何使用Swift以编程方式构建UI)

以下代码位于AppDelegate.swift中

我在项目浏览器中也有ViewController.swift

首先,除了UINavigationController,还有没有其他方法可以使用。。?或者必须有一个UINavigationController

如果不是必须的,我怎么能将其引用到ScrollView(例如…)

第二,随着对苹果自己指南的进一步研究,他们说我也可以使用
window?.ishiden=false
。。。使用前一行和
window?.makeKeyAndVisible()
之间有区别吗

很抱歉,如果我的问题在编程上没有意义,就像我说的,我是一个初学者,但我决心理解为什么我要编写或复制代码。 多谢各位

class AppDelegate: UIResponder, UIApplicationDelegate { 

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

        window = UIWindow(frame: UIScreen.main.bounds)
        window?.makeKeyAndVisible()
        window?.rootViewController = UINavigationController (rootViewController: ViewController())

        return true
    }

...

}
  • 窗口需要一个视图控制器。它不必是一个UINavigation控制器,但它确实需要是一个视图控制器。并非所有应用程序都以导航控制器启动。事实上,通过查看Xcode在新项目中为您提供的故事板,您可以看到这一点。它只是一个视图控制器。你能改用滚动视图吗?如果将scrollview(这是一个UIView)放入UIViewController,请确保可以

  • 隐藏窗口只会使它出现和消失。使其成为关键窗口意味着它将成为接收事件的窗口。您可能认为它在iOS应用程序中并不重要,但iOS应用程序可以有多个窗口。在启动应用程序的情况下,最好定义一个可见且关键的窗口,而不仅仅是一个可见的窗口

  • 窗口需要一个视图控制器。它不必是一个UINavigation控制器,但它确实需要是一个视图控制器。并非所有应用程序都以导航控制器启动。事实上,通过查看Xcode在新项目中为您提供的故事板,您可以看到这一点。它只是一个视图控制器。你能改用滚动视图吗?如果将scrollview(这是一个UIView)放入UIViewController,请确保可以

  • 隐藏窗口只会使它出现和消失。使其成为关键窗口意味着它将成为接收事件的窗口。您可能认为它在iOS应用程序中并不重要,但iOS应用程序可以有多个窗口。在启动应用程序的情况下,最好定义一个可见且关键的窗口,而不仅仅是一个可见的窗口

  • 首先,除了UINavigationController,还有没有其他方法可以使用。。?或者必须有一个UINavigationController

    您可以使用任何
    UIViewController
    子类作为根视图控制器。e、 g.
    UITabBarController
    UIPageViewController
    UIViewController
    UITableViewController

    例如,我如何将其引用到滚动视图

    无法将
    UIScrollView
    设置为根视图控制器。但是,您可以将
    UIScrollView
    添加为
    UIWindow
    的子视图。但我不建议您这样做,因为使用VCs将使代码更易于管理,不同的类管理不同的视图

    使用前一行和window?.makeKeyAndVisible()之间有区别吗

    是的,如果您查看
    makeKeyAndVisible的

    这是一种显示当前窗口并将其放置在同一级别或更低级别的所有其他窗口前面的方便方法。如果只想显示窗口,请更改其
    isHidden
    属性设置为
    false

    因此,调用
    makeKeyAndVisible
    将使窗口成为“关键窗口”

    根据,关键点窗口的行为如下所示:

    按键窗口接收键盘和其他非触摸相关事件。一次只能有一个窗口是关键窗口

    首先,除了UINavigationController,还有没有其他方法可以使用。。?或者必须有一个UINavigationController

    您可以使用任何
    UIViewController
    子类作为根视图控制器。e、 g.
    UITabBarController
    UIPageViewController
    UIViewController
    UITableViewController

    例如,我如何将其引用到滚动视图

    无法将
    UIScrollView
    设置为根视图控制器。但是,您可以将
    UIScrollView
    添加为
    UIWindow
    的子视图。但我不建议您这样做,因为使用VCs将使代码更易于管理,不同的类管理不同的视图

    使用前一行和window?.makeKeyAndVisible()之间有区别吗

    是的,如果您查看
    makeKeyAndVisible的

    这是一种显示当前窗口并将其放置在同一级别或更低级别的所有其他窗口前面的方便方法。如果只想显示窗口,请更改其
    isHidden
    属性设置为
    false

    因此,调用
    makeKeyAndVisible
    将使窗口成为“关键窗口”

    根据,关键点窗口的行为如下所示:

    按键窗口接收键盘和其他非触摸相关事件。一次只能有一个窗口是关键窗口