iOS8中提示框的使用UIAlertController(UIAlertView和UIActionSheet二合一)

From: http://blog.csdn.net/yujianxiang666/article/details/35990789

iOS8推出了幾個新的“controller”,主要是把類似之前的UIAlertView變成了UIAlertController,這不經意的改變, 貌似把我之前理解的“controller”一下子推翻了~但是也無所謂,有新東西不怕,學會使用了就行。接下來會探討一下這些個新的 Controller。

- (void)showOkayCancelAlert {
    NSString *title = NSLocalizedString(@"A Short Title Is Best", nil);
    NSString *message = NSLocalizedString(@"A message should be a short, complete sentence.", nil);
    NSString *cancelButtonTitle = NSLocalizedString(@"Cancel", nil);
    NSString *otherButtonTitle = NSLocalizedString(@"OK", nil);

    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];

    // Create the actions.
    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:cancelButtonTitle style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
        NSLog(@"The \"Okay/Cancel\" alert's cancel action occured.");
    }];

    UIAlertAction *otherAction = [UIAlertAction actionWithTitle:otherButtonTitle style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
        NSLog(@"The \"Okay/Cancel\" alert's other action occured.");
    }];

    // Add the actions.
    [alertController addAction:cancelAction];
    [alertController addAction:otherAction];

    [self presentViewController:alertController animated:YES completion:nil];
}

 

這是最普通的一個alertcontroller,一個取消按鈕,一個確定按鈕。

新的alertcontroller,其初始化方法也不一樣了,按鈕回應方法綁定使用了block方式,有利有弊。需要注意的是不要因為block導致了引用迴圈,記得使用__weak,尤其是使用到self。