Swift - 以编程方式创建视图问题,无法找到存储的属性

时间:2014-07-05 15:57:30

标签: ios view swift

我正在尝试学习Swift和iOS视图以及ViewControllers。

var window: UIWindow?
var rootViewController: MyCustomView?

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
    // Override point for customization after application launch.

    self.rootViewController = MyCustomView()
    self.rootViewController!.backgroundColor = UIColor.orangeColor()

    var rect = CGRectMake(20, 20, 100, 100)
    var label = UILabel(frame: rect)
    label.text = "Hello iOS Views"
    label.backgroundColor = UIColor.orangeColor()

    self.window!.rootViewController = self.rootViewController
    self.window!.backgroundColor = UIColor.whiteColor()
    self.window!.makeKeyAndVisible()
    return true

编译时出现错误, “无法在以下行找到成员'rootViewController'”

self.window!.rootViewController = self.rootViewController

不确定为什么Xcode 6 Beta不喜欢它,但它能够找到这一行:

self.rootViewController!.backgroundColor = UIColor.orangeColor()

1 个答案:

答案 0 :(得分:2)

问题是MyCustomView是一个UIView。但UIWindow的rootViewController需要一个UIViewController。

一般来说,通过不区分视图控制器和视图,您已经混淆了自己的代码。但你确实明智地命名了MyCustomView,这很好。它具有backgroundColor的事实有助于证明它是视图,而不是视图控制器(视图控制器没有背景颜色)。