自定義AlertView 之囧事
昨天被 AlertView、AlertController虐了 ...
然鵝發(fā)現(xiàn), 原生的AlertView不管你在哪里調(diào)用(比如說(shuō)cell里面的button點(diǎn)擊調(diào)用、view里面調(diào)用都OK), 但 若你在同一個(gè)類里面用了兩個(gè)不同的AlertView, 在執(zhí)行AlertView里的點(diǎn)擊事件時(shí) 那就悲劇了,方法
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
}
是根據(jù)被點(diǎn)擊按鈕的索引處理點(diǎn)擊事件,也就是說(shuō)當(dāng)你在同一個(gè)類中使用了兩個(gè)不同AlertView(圖1和圖2), 點(diǎn)擊時(shí),兩個(gè)AlertView的確定按鍵都是觸發(fā)這個(gè)方法, 可以通過(guò)給定不同的tag值來(lái)判斷是觸發(fā)的哪一個(gè)AlertView里的button....


而自定義的AlertView 需要依靠Viewcontroller 來(lái)將它彈出 即需要調(diào)用
[myViewController presentViewController:alertController animated:YES completion:nil];
然鵝, 我昨天就是掉這個(gè)坑里半天.囧rz
最后 (づ??????)づ
如果你想要在其他地方比如view里面添加自定義的AlertView 可以這樣寫
UIWindow *window =[[[UIApplication sharedApplication] delegate] window];
[self addSubview: alertView];
注: 這樣寫之后, 提示框只出現(xiàn)在view中,而view所在的ViewController里面提示框?qū)⒉粫?huì)出現(xiàn)(若需要出現(xiàn),寫代理方法再傳回去,簡(jiǎn)直不要太麻煩...)
AlertController
就我個(gè)人而言, 比較喜歡使用AlertController
附上事例代碼

里面的block 很明顯 點(diǎn)擊按鍵之后你可以根據(jù)自己的要求 寫到block里面, 各自安好 互不干擾. 簡(jiǎn)直棒棒噠!
然鵝, 它也依賴具體的viewcontroller彈出alertcontroller
可以通過(guò)
[UIApplication sharedApplication].keyWindow.rootViewController;
訪問(wèn)到根視圖控制器,然后再用根視圖控制器來(lái)present...
口語(yǔ)化太重, 語(yǔ)文水平 估計(jì)還老師還得差不多了?????????
------end-------