困扰了许久的window, controller, view终于有了较为全面的理解:
首先是window,一个app应用一般情况下只有一个window,可以通过手写出来或是用storyboard自动生成。storyboard会默认创建一个window并且为该window创建一个根控制器,即view controller(一开始创建文件生成的那一个)。但是,我们可以通过修改AppDelegate这个UIApplication(代表了ios程序)的委托对象的实现方法来手动创建windowCreated(任意命名),并将它设置为AppDelegate实例window的值,此时便能显示手动创建时的window了。AppDelegate类中有一个默认的window属性,但是我们可以通过在AppDelegate实现文件中的方法,实例另外的UIWindow使得AppDelegate具备多个window。
另外,window可以直接添加view,也可以通过添加controller来添加view和controller。推荐用第2种,因为第一种会存在问题。