亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

IOS頁面間得傳值方式

2019-11-14 20:25:29
字體:
來源:轉載
供稿:網友
一.通過Delegate來傳遞數據

本節主要來講解如何使用委托delegate在不同窗口之間傳遞數據,具體內容來看下面的詳細內容。

比如: 在窗口1中打開窗口2,然后在窗口2中填入一個數字,這個數字又回傳給窗口1。

窗口1

IOS開發使用委托delegate在不同窗口之間傳遞數據

窗口2

IOS開發使用委托delegate在不同窗口之間傳遞數據

窗口2的結果傳遞給窗口1

IOS開發使用委托delegate在不同窗口之間傳遞數據

1、首先定義個一委托UIViewPassValueDelegate用來傳遞值

@PRotocol UIViewPassValueDelegate  - (void)passValue:(NSString *)value;  @end 

這個protocol 就是用來傳遞值

2、在窗口1的頭文件里,聲明delegate

復制代碼
復制代碼
#import <UIKit/UIKit.h> #import "UIViewPassValueDelegate.h"  @interface DelegateSampleViewController : UIViewController <UIViewPassValueDelegate> {      UITextField *_value;  }  @property(nonatomic, retain) IBOutlet UITextField *value;  - (IBAction)buttonClick:(id)sender;  @end 
復制代碼

并實現這個委托

- (void)passValue:(NSString *)value  {    self.value.text = value;      NSLog(@"the get value is %@", value);  } 

button的Click方法,打開窗口2,并將窗口2的delegate實現方法指向窗口1。

復制代碼
復制代碼
- (IBAction)buttonClick:(id)sender  {      ValueInputView *valueView = [[ValueInputView alloc] initWithNibName:@"ValueInputView" bundle:[NSBundle mainBundle]];      valueView.delegate = self;      [self setModalTransitionStyle:UIModalTransitionStyleCoverVertical];      [self presentModalViewController:valueView animated:YES];  } 
復制代碼
復制代碼

第二個窗口的實現

.h 頭文件

復制代碼
復制代碼
#import <UIKit/UIKit.h> #import "UIViewPassValueDelegate.h"   @interface ValueInputView : UIViewController {       NSObject<UIViewPassValueDelegate> * delegate;      UITextField *_value;  }  @property(nonatomic, retain)IBOutlet UITextField *value;  @property(nonatomic, retain) NSObject<UIViewPassValueDelegate> * delegate;  - (IBAction)buttonClick:(id)sender;  @end 
復制代碼
復制代碼

.m實現文件

復制代碼
復制代碼
#import "ValueInputView.h"  @implementation ValueInputView  @synthesize delegate;  @synthesize value = _value;  - (void)dealloc {      [self.value release];      [super dealloc];  }   - (IBAction)buttonClick:(id)sender  {      [delegate passValue:self.value.text];      NSLog(@"self.value.text is%@", self.value.text);      [self dismissModalViewControllerAnimated:YES];           }  - (void)didReceiveMemoryWarning {      // Releases the view if it doesn't have a superview.      [super didReceiveMemoryWarning];            // Release any cached data, images, etc. that aren't in use.  }   - (void)viewDidUnload {      [super viewDidUnload];      // Release any retained subviews of the main view.      // e.g. self.myOutlet = nil;  }    @end 
復制代碼

 

 
 
 二.利用單例實現不同界面間的數據傳輸

 首先寫一個單例類,繼承NSObject

  check.h文件中

 @property(strong ,nonatomic) UITable * Table; @property(strong ,nonitomic) UITextFiled * Text; +(check*)shareDataModle;

  check.m中

  //定義一個靜態的checke類的對象,并賦給一個空值

  static check * dataModle = nil;  +(check*)shareDataModle  {      if (dataModle == nil)      {          dataModle = [[check alloc]init];      }  }        

  //在數據源將數據賦值給單例的對象

-(void)checkDataSource{  [check shareDatamodle].Lable = @"15";  [check shareDatamodle].Text = @"22";}

  //引入單例的頭文件 ,在對應定的方法中給對應的對象賦值

  //將單例中的屬性值傳給當前界面中的接收對象,到此就完成了數據的傳送和接收

  -(void)viewWillAppear:(BOOL)animated  {      [super viewWillAppear:animated];      self.numberLable.text=[check shareDataModle].Lable;      self.danHao.text = [check shareDataModle].Text; ?。?/span>

 

三.iOS開發中使用[[UIapplication sharedApplication] openURL:] 加載其它應用

 

在iOS開發中,經常需要調用其它App,如撥打電話、發送郵件等。UIApplication:openURL:方法是實現這一目的的最簡單方法,該方法一般通過提供的url參數的模式來調用不同的App。

通過openURL方法可以調用如下應用:

調用瀏覽器(Safari Browser)

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http:google.com"]]; 
 調用谷歌地圖(Google Maps)
NSString *addressText = @"7 Hanover Square, New York, NY 10004";  addressText = [addressText stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding];  NSString* urlText = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", addressText];  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlText]];  

調用郵件客戶端(Apple Mail) 

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://devprograms@apple.com"]];  

撥號(Phone Number) 

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://6463777303"]];  

調用短信(SMS)

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://466453"]];  

調用應用商店(AppStore)

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=291586600&amp;amp;mt=8"]];  
 
 
四.使用NSUerDefaults或文件持久化數據后實現頁面間數據的傳遞
 
IOS下可以使用NSUserDefaults、sqlite、CoreData幾種常用的方式來存儲數據,其中NSUserDefaults用來存儲類似用戶的配置等這些的數據,后兩者用戶存儲大批量和比較復雜的數據。NSUserDefault的使用比較簡單:  
NSUserDefaults *mySettingData = [NSUserDefaults standardUserDefaults];

創建NSUserDefaults對象之后即可往里面添加數據,它支持的數據類型有NSString、 NSNumber、NSDate、 NSArray、NSDictionary、BOOL、NSInteger、NSFloat等系統定義的數據類型,如果要存放自定義的對象(如自定義的類對象),則必須將其轉換成NSData存儲:

NSArray *arr = [[NSArray alloc] initWithObjects:@"arr1", @"arr2", nil]  [mySettingData setObject:arr forKey:@"arrItem"];  [mySettingData setObject:@"admin" forKey:@"user_name"];  [mySettingData setBOOL:@YES forKey:@"auto_login"];  [mySettingData setInteger:1 forKey:@"count"];  
往NSUserDefaults添加數據后,它們就變成了全局的變量,App中即可讀寫NSUserDefault中的數據:
NSUserDefaults *mySettingDataR = [NSUserDefaults standardUserDefaults];   NSLog(@"arrItem=%@", [mySettingDataR objectForKey:@"arrItem"]);  NSLog(@"user_name=%@", [mySettingDataR objectForKey:@"user_name"]);  NSLog(@"count=%d", [mySettingDataR integerForKey:@"count"]);  

如果想刪除某個數據項,可以使用removeObjectForKey刪除數據:

 [mySettingData removeObjectForKey:@"arrItem"];   
需要注意的是,NSUserDefaults是定時把緩存中的數據寫入磁盤的,而不是即時寫入,為了防止在寫完NSUserDefaults后程序退出導致的數據丟失,可以在寫入數據后使用synchronize強制立即將數據寫入磁盤:
[mySettingData synchronize];  
運行上面的語句后,NSUserDefaults中的數據即被寫入到.plist文件中,如果是在模擬器上運行程序,可以在Mac的/Users/YOUR-USERNAME/Library/Application Support/iphone Simulator/4.1/Applications/YOUR-APP-DIR/Library/Prefereces目錄下面找到一個文件名為YOUR-Bundle_Identifier.plist的plist文件,用Xcode打開該文件,可以看到剛才寫入的數據。
 
 
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
这里只有精品丝袜| 亚洲欧美激情视频| 国产精品99蜜臀久久不卡二区| 欧美一区二粉嫩精品国产一线天| 性欧美办公室18xxxxhd| 97不卡在线视频| 中日韩午夜理伦电影免费| 这里只有精品久久| 亚洲视频第一页| 热久久免费视频精品| 日韩美女免费视频| 久久久国产一区| 成人黄色在线观看| 国产在线98福利播放视频| 欧美国产日韩一区| 欧美成人三级视频网站| 日本高清视频一区| 国产精品美女www爽爽爽视频| 久久视频精品在线| 亚洲精品电影在线观看| 91精品国产综合久久久久久蜜臀| 操91在线视频| 久久福利视频网| 欧美日韩一区二区免费在线观看| 国产精品日韩久久久久| 欧美午夜精品久久久久久人妖| 97在线视频免费| 日韩欧美在线第一页| 亚洲精品综合精品自拍| 色噜噜国产精品视频一区二区| 日韩视频精品在线| 欧美日韩国产页| 有码中文亚洲精品| 91精品视频观看| 久久精品亚洲精品| 在线午夜精品自拍| 国产中文欧美精品| 欧美黑人xxxⅹ高潮交| 日本a级片电影一区二区| 亚洲精品一区二区网址| 亚洲第一区在线观看| 成人激情视频在线播放| 在线观看精品国产视频| 欧美日韩中文在线| 日本精品久久久久影院| 91在线精品播放| 国产精品欧美激情在线播放| 色婷婷综合成人| 欧美亚洲国产日韩2020| 狠狠色狠狠色综合日日小说| 日韩成人在线视频网站| 成人女保姆的销魂服务| 久久91亚洲精品中文字幕| 欧洲s码亚洲m码精品一区| 91香蕉嫩草神马影院在线观看| 成人免费在线网址| 精品国产999| 97免费中文视频在线观看| 狠狠操狠狠色综合网| 欧美激情性做爰免费视频| 亚洲精品福利资源站| 色综合久久88色综合天天看泰| 亚洲人成电影网站色…| 久久91精品国产91久久久| 午夜免费日韩视频| 国产成人a亚洲精品| 国产成人avxxxxx在线看| 超碰97人人做人人爱少妇| 日韩欧美在线观看| 亚洲区一区二区| 国产一区二区视频在线观看| 97视频在线免费观看| 欧美三级欧美成人高清www| 国产专区欧美专区| 亚洲成人网在线| 日韩精品亚洲元码| 欧美丝袜一区二区三区| 久久亚洲精品视频| 亚洲国产精品久久久久秋霞不卡| 欧美成人高清视频| 91av在线视频观看| 亚洲精品国产美女| 亚洲社区在线观看| 久久全球大尺度高清视频| 亚洲午夜未删减在线观看| 欧美交受高潮1| 欧美激情一级欧美精品| 欧美福利视频在线观看| 亚洲精品丝袜日韩| 国产亚洲视频在线| 国产美女精品视频免费观看| 日韩中文字幕免费视频| 国产91精品久| 久久亚洲春色中文字幕| 91在线免费视频| 亚洲在线免费看| 另类图片亚洲另类| 久久久国产一区| 久久久噜噜噜久久久| 黑人巨大精品欧美一区二区一视频| 亚洲精品久久久久久下一站| 亚洲japanese制服美女| 亚洲欧美日韩综合| 国内伊人久久久久久网站视频| 2025国产精品视频| 日韩高清电影好看的电视剧电影| www.精品av.com| 亚洲精品短视频| 精品国产欧美一区二区三区成人| 亚洲精品91美女久久久久久久| 国产精品久久久久久久av大片| 26uuu另类亚洲欧美日本老年| 浅井舞香一区二区| 久久久成人的性感天堂| 亚洲图片欧美午夜| 日韩美女在线观看一区| 亚洲美女又黄又爽在线观看| 亚洲精品中文字| 高清欧美一区二区三区| 中文字幕不卡在线视频极品| 久久亚洲电影天堂| 亚洲嫩模很污视频| 国产精品稀缺呦系列在线| 欧美黄色片视频| 亚洲少妇中文在线| 国产精品影院在线观看| 久久综合久中文字幕青草| 欧美成人国产va精品日本一级| 夜夜嗨av一区二区三区四区| 一区二区欧美久久| 大荫蒂欧美视频另类xxxx| 国产精品久久久久久久久久三级| 亚洲奶大毛多的老太婆| 欧美激情综合色综合啪啪五月| 日韩精品黄色网| 久久99热这里只有精品国产| 日韩av一区在线| 亚洲成人国产精品| 91天堂在线视频| 国产视频999| 日韩一区二区在线视频| 亚洲a在线观看| 午夜精品久久久久久99热| 亚洲一区二区三区视频播放| 欧美一级免费视频| 亚洲成av人片在线观看香蕉| 国产欧美一区二区三区四区| 久久久久久久久久久免费| 国产亚洲美女精品久久久| 欧美日韩国产成人| 国产成人aa精品一区在线播放| 国产97免费视| 欧美夫妻性生活xx| 国产剧情久久久久久| 欧美性理论片在线观看片免费| 精品五月天久久| 日韩av免费在线看| 亚洲图片欧美午夜| 久久中文字幕在线视频| 国产精品444| 日韩在线视频网站| 亚洲娇小xxxx欧美娇小| 久久久久久久久久久免费精品| 亚洲国产精品久久精品怡红院|