2015-06-14 83 views
2

我想添加一個UIAlertView中或控制器時,應用程序首次加載。目前,我在我的viewDidLoad方法中有此代碼。顯示一個UIAlertView中,當應用程序啓動

let welcomeAlert = UIAlertController(title: "hola", message: "this is a test.", preferredStyle: UIAlertControllerStyle.Alert) 
welcomeAlert.addAction(UIAlertAction(title: "ok.", style: UIAlertActionStyle.Default, handler: nil)) 

self.presentViewController(welcomeAlert, animated: true, completion: nil) 

爲什麼警報視圖不顯示?我使用了相同的代碼,但在一個IBAction的按鈕內,它按預期工作。

+0

這是一個DUP。您無法顯示來自根VC的警報。有關替代方法,請參閱http://stackoverflow.com/questions/10147625/unable-to-get-presentviewcontroller-to-work。 – Laurent

回答

4

你應該在你viewDidAppear:功能可以顯示警報。要呈現子視圖或其他視圖控制器,父視圖控制器必須位於視圖層次結構中。

viewDidAppear功能「通知其視圖添加到視圖層次視圖控制器」。

*從documentation

所以,你的代碼可能是這個樣子:

class MyViewController: UIViewController { 

    override func viewDidAppear(animated: Bool){ 
     super.viewDidAppear(animated) 

     let welcomeAlert = UIAlertController(title: "hola", message: "this is a test.", preferredStyle: UIAlertControllerStyle.Alert) 
     welcomeAlert.addAction(UIAlertAction(title: "ok.", style: UIAlertActionStyle.Default, handler: nil)) 
     self.presentViewController(welcomeAlert, animated: true, completion: nil) 
    } 

} 
+0

我沒有在我的代碼中。我沒有看到一個viewDidAppear。如果我插入你所擁有的東西,它會告訴我刪除didReceiveMemoryWarning –

+0

您必須添加該函數,以及關於'didReceiveMemoryWarning'的整個錯誤消息是什麼?也許你把代碼忘了花括號('}')。 – Jojodmo

+0

啊,我把它放在記憶的東西下,它工作的很好。 –

相關問題