自定義AlertView

自定義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...

下載demo

口語(yǔ)化太重, 語(yǔ)文水平 估計(jì)還老師還得差不多了?????????

                    ------end-------
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容