1. 程式人生 > >iOS中的AlterViewController的一些總結

iOS中的AlterViewController的一些總結

一、 IOS8之後,蘋果使用UIAlertController 取代UIActionSheet(操作表 提供一系列按鈕,底部彈出) UIAlertView(警告 中間彈出). 關於這兩個怎麼使用,大家可以自行百度,在一些舊專案中會有用到。我這裡介紹UIAlertController 基於ios新手,沒有接觸過之前兩種的情況下…
二. UIAlterController建立以及顯示,
實際上,蘋果之前只是將兩個類歸為一個處理了,然後根據不同的preferredStyle來判斷建立的具體是什麼提示框,下面就是兩個style,/*
typedef NS_ENUM(NSInteger, UIAlertControllerStyle) {
UIAlertControllerStyleActionSheet = 0, //actionSheet(操作表 提供一系列按鈕) 底部彈出
UIAlertControllerStyleAlert //alert 警告 中間彈出
} NS_ENUM_AVAILABLE_IOS(8_0);
*/
三:然後就是 UIAlertController建立和顯示
UIAlertController *alert = [UIAlertController alertControllerWithTitle:DMSG0048 message:nil preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction cancel = [UIAlertAction actionWithTitle:@”取消” style:UIAlertActionStyleCancel handler:^(UIAlertAction

action) {
}];
UIAlertAction * login = [UIAlertAction actionWithTitle:@”去註冊” style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[alert addAction:cancel];
[alert addAction:login];
if (IS_IOS9) {
alert.preferredAction = alert.actions[alert.actions.count-1];
}
顯示,然後就是模態檢視的顯示
[self presentViewController:alert animated:YES completion:nil];
注意事項:1.UIAlterAction也就是彈出來的框上面的那些,確定,取消之類的按鈕,但是注意,取消按鈕最多隻能有一個,按鈕但三種狀態有:
/*
typedef NS_ENUM(NSInteger, UIAlertActionStyle) {
UIAlertActionStyleDefault = 0, //預設
UIAlertActionStyleCancel, //取消
UIAlertActionStyleDestructive //破壞的 比較嚴重的 會紅色提示
} NS_ENUM_AVAILABLE_IOS(8_0);
*/
建立按鈕並且顯示
UIAlertController *alertC = [UIAlertController alertControllerWithTitle:@”樣式一” message:@”學習UIAlertControllerStyleActionSheet” preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction action6 = [UIAlertAction actionWithTitle:@”取消2” style:UIAlertActionStyleCancel handler:^(UIAlertAction
_Nonnull action) {
NSLog(@”點選了取消”);
}];
UIAlertAction action2 = [UIAlertAction actionWithTitle:@”UIAlertActionStyleDefault1” style:UIAlertActionStyleDefault handler:^(UIAlertAction _Nonnull action) {
NSLog(@”點選了預設1”);
}];

UIAlertAction *action9 = [UIAlertAction actionWithTitle:@"UIAlertActionStyleDefault5" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
    NSLog(@"點選了預設2");
}];
UIAlertAction *action3 = [UIAlertAction actionWithTitle:@"UIAlertActionStyleDestructive1" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
    NSLog(@"點選了確認1");
}];
UIAlertAction *action5 = [UIAlertAction actionWithTitle:@"UIAlertActionStyleDestructive2" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
    NSLog(@"點選了確認2");
}];
[alertC addAction:action2];
[alertC addAction:action3];
[alertC addAction:action5];
[alertC addAction:action6];
[alertC addAction:action9];

,這兩種顯示效果如下哦,
一種是a.UIAlertControllerStyleActionSheet是一種從下面彈出的樣式,

另一種,是UIAlertControllerStyleAlert ,這是一種從中間彈出來的樣式的提示框
3. preferredAction 優先選擇按鈕IOS9新出

@property (nonatomic, strong, nullable) UIAlertAction *preferredAction NS_AVAILABLE_IOS(9_0); 這個屬性是ios9之後才有的。不能用在之前的專案中.. 為這個屬性賦值之後,那個按鈕的文字會有加粗的效果。但是實際試了下發現只有UIAlertControllerStyleAlert模式的才有效果 UIAlertControllerStyleActionSheet預設應該是選中了取消 

注意:對preferredAction的賦值,必須在[alertC addAction:action2];之後執行,也就是說只能用alertC.actions數組裡面的值賦值 否則會報錯“The -preferredAction of an alert controller must be contained in the -actions array or be nil.’

4,同時增加了textFiled的輸入框,注意的是隻能是UIAlertControllerStyleAlert可以新增。可以新增,’Text fields can only be added to an alert controller of style UIAlertControllerStyleAlert’
[alertC addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.placeholder = @”textField1”;
}];
[alertC addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.placeholder = @”textField2”;
}];
[alertC addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.placeholder = @”textField3”;
}];
獲取textField. UIAlertController中有一個數組textFields儲存了建立的textField.

UIAlertAction action5 = [UIAlertAction actionWithTitle:@”UIAlertActionStyleDestructive2” style:UIAlertActionStyleDestructive handler:^(UIAlertAction _Nonnull action) {
NSLog(@”點選了確認2”);
for (UITextField *field in alertC.textFields) {
NSLog(@”field = %@”,field.text);
}

相關推薦

OpenCV使用一些總結

操作 images ont 技術分享 背景 out image 通道 size 一、threshold閾值操作 1、閾值可以被視作最簡單的圖像分割方法。例如,從一副圖像中利用閾值分割出我們需要的物體部分,這樣的圖像分割方法基於圖像中的物體與背景之間的灰度差異。 2、thre

Flink學習一些總結

1.手動匯入兩個包 org.apache.flink.api.scala._ // 編譯不通過 scala.collection.JavaConverters._ //如果不手動匯入該包,導致asScala使用隱式轉換失敗 2.Flink基本api的描述碼上慢慢看看 https://www.

oozie使用一些總結(持續完善)

0 關於oozie 尋找包尋找位置原則: oozie在執行的時候 只會去兩個地方尋找自己需要的lib 1 回去當前提交任務的workflow所在的hdfs目錄下的lib下尋找 eg: /user/root/examples/apps/fork-merge的workflo

vue學習一些總結

http://www.tuicool.com/articles/J3ArAri 路由的用法 // router.config.js const routerConfig = [ { path: ‘/login’, component: resolve =

iOSAlterViewController一些總結

一、 IOS8之後,蘋果使用UIAlertController 取代UIActionSheet(操作表 提供一系列按鈕,底部彈出) UIAlertView(警告 中間彈出). 關於這兩個怎麼使用,大家可以自行百度,在一些舊專案中會有用到。我這裡介紹UIAler

C#、Java一些小功能點總結(持續更新......)

grid datagrid item 其他 cnblogs hid roc oid sha 前言:在項目中,有時候一些小的功能點,總是容易讓人忽略,但是這些功能加在項目中往往十分的有用,因此筆者在這裏總結項目中遇到的一些實用的小功能點,以備用,並持續更新...... 1.禁

IOS多線程的總結

api 1-1 返回 線程管理 按順序 cpu block 特殊 詳細 首先要知道線程和進程的區別。一個系統上運行的每一個應用程序都是一個線程。而進程中要執行的任務都是在線程上來實現的,所以說線程是進程的最小執行單元。 進程最少要有一個線程。

[Java面試六]SpringMVC總結以及在面試一些問題.

servlet direct string adapt iso quest use 入口 amt 1.簡單的談一下SpringMVC的工作流程? 流程 1、用戶發送請求至前端控制器DispatcherServlet 2、DispatcherServlet收到請求

使用protobuf編譯onnx.proto過程一些問題總結

就會 升級gcc 存在 ace 代碼下載 oar get mar tom 使用git clone下載protobuf的源代碼,然後git checkout到branch2.7.0: 編譯protobuf,先在代碼頂層目錄執行./configure,然後執行make,成功後

我個人對於 iOS 開發基於經驗的一些總結與規劃【4年開發經歷】

離職 能力 實現 京東 騰訊雲 行業 有理 面試題 發展 前言: 18年快過去了一半,半年下來感覺自己還是很菜,突然想起之前和朋友聊天,朋友本身技術實力極強,業界認可度也較高。但是還是認為自己很菜。我認為這很大一部分是對於知識的敬畏心,作為程序員就需要不斷的涉獵新知識,學習

面試題思考:web關於一些容器基本概念的簡單總結

完成 郵件服務 ini 語言 servle 關心 就會 數據庫連接 response 關鍵字:應用服務器、web服務器、web容器、jsp容器、servlet容器。 1.應用服務器: 作為應用程序服務器,要求可以通過各種協議(包括 HTTP 協議)把商業邏輯暴露給(expo

arm keil 一些術語總結

keil itl tps order isp href alt 技術分享 arm 1.ETM(指令流追蹤)arm keil 中的一些術語總結

Android實現短音訊和震動的一些總結

好長時間沒有寫部落格了,因為最近事情比較多。所以好長時間沒有寫部落格了。堅持是一件很辛苦的事情。但還需要努力。。。好了,閒話不扯了。因為最近專案中用到了相應的短音訊和震動的功能,所以這裡總結一下相應的內容! 本文知識點: 音訊中的一些知識和常用的API介紹;

iOS通知中心NSNotificationCenter應用總結

iOS中通知中心NSNotificationCenter應用總結 一、瞭解幾個相關的類 1、NSNotification 這個類可以理解為一個訊息物件,其中有三個成員變數。 這個成員變數是這個訊息物件的唯一標識,用於辨別訊息物件。 @property (readonly, cop

關於對iOS自動釋放池autoreleasepool的一些理解

因為現在大家都在使用ARC模式下進行程式設計,一個很重要的問題也是最容易被大家所忽視的問題就是自動釋放池,大部分程式設計師尤其是剛入行的都只是知道有這麼一個東西,但具體是什麼,工作的原理是什麼,在什麼時候使用它都一概不知。所以寫一篇文章,記錄一下個人對自動釋放池的一些理解。

Spring總結以及在面試一些問題

1.談談你對spring IOC和DI的理解,它們有什麼區別? IoC Inverse of Control 反轉控制的概念,就是將原本在程式中手動建立UserService物件的控制權,交由Spring框架管理,簡單說,就是建立UserService物件控制權被反轉到了S

C++:和::區別和用法的一些總結

冒號(:)的用法 1、既定義變數所佔的大小 例如: unsigned char a:4;   2、public:和private:後面的冒號,表示後面定義的所有成員都是公有或私有的,例如: class A { public: int a;

iOS使用dispatch_sync崩潰問題。總結

崩潰發現是這樣的,在維護專案過程中,有個地圖的功能,在地圖上會新增很多的標註物,但是我在測試過程中發現只要快速操作,比如連續點選放大地圖,就會出現崩潰現象。 崩潰點在dispatch_sync上面,使用同步縣城 dispatch_sync(dispatch_get_mai

iOS關於BLE進行OTA升級的一些總結

最近在做一款智慧硬體相關的APP,由於沒有MFI認證,所以使用BLE進行資料的傳輸。硬體提供商那裡給了原始碼,不過都是靜態庫,完全看不了實現步驟,自己來吧。。。韌體升級遇見不少問題,果然還是太年輕了。首先就是校驗和問題,每個分割槽傳送之前都需要進行一次握手操作,校驗和是關鍵,

Python一些模組總結

1. os模組:這個模組提供一種方便的使用作業系統函式的方法 2. sys模組:這個模組課訪問由直譯器使用或者維護的變數和與直譯器進行互動的函式 os模組與sys模組的區別:os模組負責程式與作業系