自定义UIViewController viewDidLoad()未被调用

时间:2014-10-08 19:26:38

标签: ios model-view-controller uiviewcontroller swift viewcontroller

我正在制作一个自定义设置,用于管理由上下文管理的视图控制器。所以我创建了自己的自定义控制器类,名为Controller

//base controller class
class Controller:UIViewController{

}

我有一个上下文类来管理控制器

//abstract base of context classes
class Context{

}

对于我的第一堂课,我正在做一个照片编辑器,所以我创建了一个继承自Controller的C_TakePhoto类(现在只是你看到的UIViewController的副本)

//manages the take photo view class
class C_TakePhoto:Controller{

    override func viewDidLoad() {
        super.viewDidLoad()
        println("got here")
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

要加载此类,我转到AppDelegate并将其设置为加载上下文(上下文只管理控制器)

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.
        var p:O_PhotoEditor = O_PhotoEditor()
        return true
    }

O_PhotoEditor只是一个打开C_TakePhoto的上下文

//manages photo editor
class O_PhotoEditor:Context{

    var _photoEditorController:C_TakePhoto

    override init()
    {
        println("Init on O_PhotoEditor")
        _photoEditorController = C_TakePhoto()
        super.init()
    }
}

“在O_PhotoEditor上初始化”确实会在控制台中打印出来,因此我100%知道此代码被调用。但是,如果我将一行放到C_TakePhoto类中,则不会在viewDidLoad函数中调用“got here”。

我很确定我需要提供视图控制器,但我对自定义类的方式感到不知所措。

当我启动单视图应用程序时,它似乎只是自动加载第一个应用程序。

知道我错过了什么步骤让viewDidLoad实际被调用并显示视图?

0 个答案:

没有答案