问题现象:想在页面初始化的时候,使用self.presentViewController方法弹出个告警提示框UIAlertController。但行后报了个如下告警,同时告警框也出不来。
解决办法:原来的调用代码是写在viewDidLoad方法中,这个表示视图加载完毕。我们应该把方法调用放到viewDidApper中,这个是UIViewController对象的视图已经加入到窗口时调用。
1
|
2015
-
03
-
10
09
:
55
:
34.197
Test[
1140
:
29622
] Warning: Attempt to present <UIAlertController:
0x7c95ca20
> on <Test.ViewController:
0x7a6afc60
> whose view is not in the window hierarchy!
|
解决办法:原来的调用代码是写在viewDidLoad方法中,这个表示视图加载完毕。我们应该把方法调用放到viewDidApper中,这个是UIViewController对象的视图已经加入到窗口时调用。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import
UIKit
class
ViewController
:
UIViewController
,
UIActionSheetDelegate
{
override
func
viewDidLoad() {
super
.viewDidLoad()
}
override
func
viewDidAppear(animated:
Bool
){
super
.viewDidAppear(animated)
var
alertController =
UIAlertController
(title:
"系统提示"
,
message:
"您确定要离开hangge.com吗?"
, preferredStyle:
UIAlertControllerStyle
.
Alert
)
var
cancelAction =
UIAlertAction
(title:
"取消"
, style:
UIAlertActionStyle
.
Cancel
, handler:
nil
)
var
okAction =
UIAlertAction
(title:
"好的"
, style:
UIAlertActionStyle
.
Default
, handler:
nil
)
alertController.addAction(cancelAction)
alertController.addAction(okAction)
self
.presentViewController(alertController, animated:
true
, completion:
nil
)
}
override
func
didReceiveMemoryWarning() {
super
.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
|