自定義AlertView 之囧事
昨天被 AlertView、AlertController虐了 ...
然鵝發(fā)現(xiàn), 原生的AlertView不管你在哪里調(diào)用(比如說cell里面的button點擊調(diào)用、view里面調(diào)用都OK), 但 若你在同一個類里面用了兩個不同的AlertView, 在執(zhí)行AlertView里的點擊事件時 那就悲劇了,方法
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
}
是根據(jù)被點擊按鈕的索引處理點擊事件,也就是說當你在同一個類中使用了兩個不同AlertView(圖1和圖2), 點擊時,兩個AlertView的確定按鍵都是觸發(fā)這個方法, 可以通過給定不同的tag值來判斷是觸發(fā)的哪一個AlertView里的button....
而自定義的AlertView 需要依靠Viewcontroller 來將它彈出 即需要調(diào)用
[myViewController presentViewController:alertController animated:YES completion:nil];
然鵝, 我昨天就是掉這個坑里半天.囧rz
最后 (づ??????)づ
如果你想要在其他地方比如view里面添加自定義的AlertView 可以這樣寫
UIWindow *window =[[[UIApplication sharedApplication] delegate] window];
[self addSubview: alertView];
注: 這樣寫之后, 提示框只出現(xiàn)在view中,而view所在的ViewController里面提示框?qū)⒉粫霈F(xiàn)(若需要出現(xiàn),寫代理方法再傳回去,簡直不要太麻煩...)
AlertController
就我個人而言, 比較喜歡使用AlertController
附上事例代碼
里面的block 很明顯 點擊按鍵之后你可以根據(jù)自己的要求 寫到block里面, 各自安好 互不干擾. 簡直棒棒噠!
然鵝, 它也依賴具體的viewcontroller彈出alertcontroller
可以通過
[UIApplication sharedApplication].keyWindow.rootViewController;
訪問到根視圖控制器竣蹦,然后再用根視圖控制器來present...
口語化太重, 語文水平 估計還老師還得差不多了?????????
------end-------