免費開源的iOS開發學習平臺

                                                提醒功能實現:UIAlertController與UIAlertAction

                                                蘋果自iOS8開始,就已經廢棄了之前用于界面提醒的UIAlertView類以及UIActionSheet,取而代之的是UIAlertController以及UIAlertAction,從實際使用情況來看,蘋果把不同類型/樣式提醒的實現方法進行了統一,簡化了有關提醒功能的實現。

                                                UIAlertController的使用

                                                UIAlertController是用于管理和控制某個提醒的類,通過UIAlertController類的對象可以實現提醒樣式的定制。UIAlertController類中有如下常用的方法。

                                                • UIAlertController實例化方法,通過該方法可以創建一個UIAlertController類的對象
                                                + (instancetype)alertControllerWithTitle:(nullable NSString *)title message:(nullable NSString *)message preferredStyle:(UIAlertControllerStyle)preferredStyle;
                                                
                                                • 在提醒對象中添加按鈕,每個按鈕都是一個UIAlertAction類的對象
                                                - (void)addAction:(UIAlertAction *)action;
                                                
                                                • 在界面上顯示提醒
                                                - (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion;
                                                

                                                在iOS開發中,提醒主要有兩種樣式,一種是顯示在屏幕中央的,另外一種是顯示在屏幕底部的。在UIAlertController類中,對提醒的樣式進行了統一,使用preferredStyle來區分。

                                                typedef NS_ENUM(NSInteger, UIAlertControllerStyle) {
                                                    UIAlertControllerStyleActionSheet = 0,
                                                    UIAlertControllerStyleAlert
                                                }
                                                

                                                UIAlertAction的使用

                                                UIAlertAction是定義提醒中每個按鈕的樣式以及用戶點擊后所執行的操作,每個UIAlertAction對象都需要添加到一個UIAlertController對象上才能生效。當我們需要創建UIAlertAction對象時,可以使用如下的類方法。

                                                + (instancetype)actionWithTitle:(nullable NSString *)title style:(UIAlertActionStyle)style handler:(void (^ __nullable)(UIAlertAction *action))handler;
                                                

                                                每個提醒的按鈕樣式也是可以定制的,例如紅色按鈕、加粗字體按鈕等。提醒按鈕的樣式是通過UIAlertActionStyle參數配置的。

                                                typedef NS_ENUM(NSInteger, UIAlertActionStyle) {
                                                    UIAlertActionStyleDefault = 0,
                                                    UIAlertActionStyleCancel,
                                                    UIAlertActionStyleDestructive
                                                } NS_ENUM_AVAILABLE_IOS(8_0);
                                                

                                                示例代碼

                                                下方的示例代碼中創建了一個彈出式的提醒,并且包含了兩個按鈕,當點擊每個按鈕后都會執行特定的動作。首先創建一個Single View Application,然后在ViewController.m中添加如下代碼,注意需要在viewDidAppear:方法中實現。

                                                -(void)viewDidAppear:(BOOL)animated{
                                                    UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"提示"                                                                     message:@"是否要訪問99iOS?"                                                                preferredStyle:UIAlertControllerStyleAlert];
                                                    UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"YES"
                                                                                                            style:UIAlertActionStyleDefault                                                              handler:^(UIAlertAction * action) {
                                                                                                                NSLog(@"點擊了YES");
                                                                                                            }];
                                                    UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"NO"
                                                                                                           style:UIAlertActionStyleCancel                                                     handler:^(UIAlertAction *action) {
                                                                                                               NSLog(@"點擊了NO");
                                                                                                           }];
                                                    [alert addAction:defaultAction];
                                                    [alert addAction:cancelAction];
                                                    [self presentViewController:alert animated:YES completion:nil];
                                                }
                                                

                                                當應用啟動后,會彈出一個提醒框,包括兩個按鈕。

                                                當點擊YES時,會打印如下日志,即執行YES按鈕對應的UIAlertAction中設置的代碼。

                                                https://github.com/99ios/7.6


                                                欧美超级精品一级A片|欧美一级黄色视频|国产精品自在在线午夜免费|4444亚洲人成无码网在线观看|亚洲ⅴa曰本va欧美va视频