打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
IOS开发基础知识

三十三:IOS多视图跳转方法

第一种:跳转:[self presentModalViewController:control animated:YES];返回:[self dismissModalViewControllerAnimated:YES];第二种:跳转:[self.navigationController pushViewController:subTableViewController  animated:YES];返回:[self.navigationController popViewControllerAnimated:YES];第三种:自己控制: [self.view addSubview:<#(UIView *)#>] [self.view removeFromSuperview];注意:pushViewController和popViewController进行视图间的切换,就必须要求当前视图是个NavigationController,

三十四:presentModalViewController与dismissModalViewControllerAnimated注意事项

在实际开发中,如果要弹出视图:我们常用到presentModalViewController方法和dismissModalViewControllerAnimated方法。presentModalViewController:弹出视图dismissModalViewControllerAnimated:隐藏视图弹出视图:FeedbackViewController *feedbackViewController = [[FeedbackViewController alloc]initWithNibName:@"FeedbackViewController" bundle:nil];    UINavigationController *navigationController = [[UINavigationController alloc]initWithRootViewController:feedbackViewController];    [self presentModalViewController:navigationController animated:YES];隐藏视图:[self dismissModalViewControllerAnimated:YES];关于这两个方法的几点说明:1.iPhone上弹出/隐藏 视图时,使用为全屏模式2.搞清楚谁是presenting,谁是presented如果A弹出B,那么A为presenting,B为presented。3.隐藏视图的策略我们假如A弹出B就是说,A负责隐藏B;如果我们在B中调用dismissModalViewControllerAnimated方法,那么编译器,自动将消息发送给A。等等,什么消息?简单的理解,当执行presentModalViewController:方法:在A弹出B时:执行A的viewWillDisappear方法,通知B执行自己的viewWillAppear方法和viewDidAppear执行A的viewDidDisappear方法当执行dismissModalViewControllerAnimated方法:隐藏B时:执行B的viewWillDisappear通知A执行自己的viewWillAppear方法和viewDidAppear方法执行B的viewDidDisappear方法以下我做了个测试来输出一轮AB切换:A:MoreB:Feed2012-12-27 14:01:23.666 WTV[1627:11303] -More--viewWillDisappear----2012-12-27 14:01:23.672 WTV[1627:11303] -Feed--viewWillAppear----2012-12-27 14:01:24.086 WTV[1627:11303] -Feed--viewDidAppear----2012-12-27 14:01:24.087 WTV[1627:11303] -More--viewDidDisappear----2012-12-27 14:01:25.745 WTV[1627:11303] -Feed--viewWillDisappear----2012-12-27 14:01:25.745 WTV[1627:11303] -More--viewWillAppear----2012-12-27 14:01:26.156 WTV[1627:11303] -More--viewDidAppear----2012-12-27 14:01:26.157 WTV[1627:11303] -Feed--viewDidDisappear----当我们信心慢慢,庆幸我们可以了解了这两个方法时,悲剧发生了:4.苹果官方已经把这两个方法 Deprecated in iOS 6.0. 了- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated;- (void)dismissModalViewControllerAnimated:(BOOL)animated;取而代之的是:[self presentViewController:navigationController                       animated:YES                     completion:^(void){                         // Code                     }];[self dismissViewControllerAnimated:YES                             completion:^(void){                                 // Code                             }];新接口的差别是提供了一个参数,允许你传入一个block。这个block的回调方法在VC的viewWillDisappear方法后调用。也就是被隐藏的VC对象被释放后运行回调。这样做的好处:可以方便做多个UI效果之间的衔接和转换。

 三十五:视图跳载的几种动画

        BaiDuViewController* baiduController=[mainStoryboard instantiateViewControllerWithIdentifier:@"baiduStoryboard"];        baiduController.modalTransitionStyle=UIModalTransitionStyleFlipHorizontal;        [self presentViewController:baiduController animated:YES completion:^{                    }];
  1. UIModalTransitionStyleCoverVertical  //新视图从下向上出现 
  2. UIModalTransitionStyleFlipHorizontal //以设备的长轴为中心翻转出现 
  3. UIModalTransitionStyleCrossDissolve  //渐渐显示 
  4. UIModalTransitionStylePartialCurl    //原视图向上卷起 
 

三十六:JSONKit的使用方法

json开源的类库有很多,其中JSONKit库是非常简单易用而且效率又比较高的,重要的JSONKit适用于ios 5.0以下的版本。下载地址:https://github.com/johnezang/JSONKit使用JSONKit库来解析json文件,只需要下载JSONKit.h 和JSONKit.m添加到工程中,设置支持arc,在项目中build phases中的compile sources,选择jsonkit.m然后确认键输入-fno-objc-arc #import "JSONKit.h"//假设 strJson 是网络上接收到的 json 字符串,NSString *strJson = @"[{\"Id\": 1,\"BrandName\": \"爱马仕\" },{\"Id\": 2,\"BrandName\": \"安娜苏\"}]";     NSArray *arrlist=[strJson objectFromJSONString];    NSLog(@"%d",[arrlist count]);    for (int i=0; i<[arrlist count]; i++) {        NSDictionary *item=[arrlist objectAtIndex:i];        NSString *BrandName=[item objectForKey:@"BrandName"];        NSLog(@"%@",BrandName);    }字典arrlist便是解析好的json文件了。JSONKit库也可以用来生成json文件NSMutableDictionary *jsonDic = [NSMutableDictionary dictionary];NSMutableDictionary *alert = [NSMutableDictionary dictionary];NSMutableDictionary *aps = [NSMutableDictionary dictionary];[alert setObject:@"a msg come!" forKey:@"body"];[aps setObject:alert forKey:@"alert"];[aps setObject:@"3" forKey:@"bage" ];[aps setObject:@"def.mp3" forKey:@"sound"];[jsonDic setObject:aps forKey:@"aps"];NSString *strJson = [jsonDic JSONString];另一个,其中operation.responseString就是下面那串json字符串,通过它进行解析:        NSDictionary* resultDictionary=[operation.responseString objectFromJSONStringWithParseOptions:JKParseOptionLooseUnicode];        NSLog(@"%@ Items Found!",[resultDictionary objectForKey:@"weatherinfo"]);        //{"weatherinfo":{"city":"北京","cityid":"101010100","temp":"3","WD":"北风","WS":"3级","SD":"24%","WSE":"3","time":"11:25","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB","njd":"暂无实况","qy":"1028"}}                self.weaLableInfo.text=[NSString stringWithFormat:@"城市:%@,温度:%@",[[resultDictionary objectForKey:@"weatherinfo"]objectForKey:@"city"],[[resultDictionary objectForKey:@"weatherinfo"]objectForKey:@"temp"]];

三十七:三十五:afnetworking2.0运用,结合json,引入afnetworking文件后,引入头文件就可以使用,支持arc

- (IBAction)JsonAction:(UIBarButtonItem *)sender {    NSString* weatherUrl=[NSString stringWithFormat:@"%@%@.html",BaseURLString,self.UrlString];        AFHTTPRequestOperationManager* manager=[AFHTTPRequestOperationManager manager];    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];    [manager GET:weatherUrl parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {               NSDictionary* resultDictionary=[operation.responseString objectFromJSONStringWithParseOptions:JKParseOptionLooseUnicode];        NSLog(@"%@ Items Found!",[resultDictionary objectForKey:@"weatherinfo"]);        //{"weatherinfo":{"city":"北京","cityid":"101010100","temp":"3","WD":"北风","WS":"3级","SD":"24%","WSE":"3","time":"11:25","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB","njd":"暂无实况","qy":"1028"}}                self.weaLableInfo.text=[NSString stringWithFormat:@"城市:%@,温度:%@",[[resultDictionary objectForKey:@"weatherinfo"]objectForKey:@"city"],[[resultDictionary objectForKey:@"weatherinfo"]objectForKey:@"temp"]];           } failure:^(AFHTTPRequestOperation *operation, NSError *error) {        NSLog(@"Error:%@",error);    }];    }带post参数到服务端AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];//申明返回的结果是json类型manager.responseSerializer = [AFJSONResponseSerializer serializer];//申明请求的数据是json类型manager.requestSerializer=[AFJSONRequestSerializer serializer];//如果报接受类型不一致请替换一致text/html或别的manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];//传入的参数NSDictionary *parameters = @{@"1":@"XXXX",@"2":@"XXXX",@"3":@"XXXXX"};//你的接口地址NSString *url=@"http://xxxxx";//发送请求[manager POST:url parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {    NSLog(@"JSON: %@", responseObject);} failure:^(AFHTTPRequestOperation *operation, NSError *error) {    NSLog(@"Error: %@", error);}];

 三十三:IOS多视图跳转方法

第一种:跳转:[self presentModalViewController:control animated:YES];返回:[self dismissModalViewControllerAnimated:YES];第二种:跳转:[self.navigationController pushViewController:subTableViewController  animated:YES];返回:[self.navigationController popViewControllerAnimated:YES];第三种:自己控制: [self.view addSubview:<#(UIView *)#>] [self.view removeFromSuperview];注意:pushViewController和popViewController进行视图间的切换,就必须要求当前视图是个NavigationController,

三十四:presentModalViewController与dismissModalViewControllerAnimated注意事项

在实际开发中,如果要弹出视图:我们常用到presentModalViewController方法和dismissModalViewControllerAnimated方法。presentModalViewController:弹出视图dismissModalViewControllerAnimated:隐藏视图弹出视图:FeedbackViewController *feedbackViewController = [[FeedbackViewController alloc]initWithNibName:@"FeedbackViewController" bundle:nil];    UINavigationController *navigationController = [[UINavigationController alloc]initWithRootViewController:feedbackViewController];    [self presentModalViewController:navigationController animated:YES];隐藏视图:[self dismissModalViewControllerAnimated:YES];关于这两个方法的几点说明:1.iPhone上弹出/隐藏 视图时,使用为全屏模式2.搞清楚谁是presenting,谁是presented如果A弹出B,那么A为presenting,B为presented。3.隐藏视图的策略我们假如A弹出B就是说,A负责隐藏B;如果我们在B中调用dismissModalViewControllerAnimated方法,那么编译器,自动将消息发送给A。等等,什么消息?简单的理解,当执行presentModalViewController:方法:在A弹出B时:执行A的viewWillDisappear方法,通知B执行自己的viewWillAppear方法和viewDidAppear执行A的viewDidDisappear方法当执行dismissModalViewControllerAnimated方法:隐藏B时:执行B的viewWillDisappear通知A执行自己的viewWillAppear方法和viewDidAppear方法执行B的viewDidDisappear方法以下我做了个测试来输出一轮AB切换:A:MoreB:Feed2012-12-27 14:01:23.666 WTV[1627:11303] -More--viewWillDisappear----2012-12-27 14:01:23.672 WTV[1627:11303] -Feed--viewWillAppear----2012-12-27 14:01:24.086 WTV[1627:11303] -Feed--viewDidAppear----2012-12-27 14:01:24.087 WTV[1627:11303] -More--viewDidDisappear----2012-12-27 14:01:25.745 WTV[1627:11303] -Feed--viewWillDisappear----2012-12-27 14:01:25.745 WTV[1627:11303] -More--viewWillAppear----2012-12-27 14:01:26.156 WTV[1627:11303] -More--viewDidAppear----2012-12-27 14:01:26.157 WTV[1627:11303] -Feed--viewDidDisappear----当我们信心慢慢,庆幸我们可以了解了这两个方法时,悲剧发生了:4.苹果官方已经把这两个方法 Deprecated in iOS 6.0. 了- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated;- (void)dismissModalViewControllerAnimated:(BOOL)animated;取而代之的是:[self presentViewController:navigationController                       animated:YES                     completion:^(void){                         // Code                     }];[self dismissViewControllerAnimated:YES                             completion:^(void){                                 // Code                             }];新接口的差别是提供了一个参数,允许你传入一个block。这个block的回调方法在VC的viewWillDisappear方法后调用。也就是被隐藏的VC对象被释放后运行回调。这样做的好处:可以方便做多个UI效果之间的衔接和转换。

 三十五:视图跳载的几种动画

        BaiDuViewController* baiduController=[mainStoryboard instantiateViewControllerWithIdentifier:@"baiduStoryboard"];        baiduController.modalTransitionStyle=UIModalTransitionStyleFlipHorizontal;        [self presentViewController:baiduController animated:YES completion:^{                    }];
  1. UIModalTransitionStyleCoverVertical  //新视图从下向上出现 
  2. UIModalTransitionStyleFlipHorizontal //以设备的长轴为中心翻转出现 
  3. UIModalTransitionStyleCrossDissolve  //渐渐显示 
  4. UIModalTransitionStylePartialCurl    //原视图向上卷起 
 

三十六:JSONKit的使用方法

json开源的类库有很多,其中JSONKit库是非常简单易用而且效率又比较高的,重要的JSONKit适用于ios 5.0以下的版本。下载地址:https://github.com/johnezang/JSONKit使用JSONKit库来解析json文件,只需要下载JSONKit.h 和JSONKit.m添加到工程中,设置支持arc,在项目中build phases中的compile sources,选择jsonkit.m然后确认键输入-fno-objc-arc #import "JSONKit.h"//假设 strJson 是网络上接收到的 json 字符串,NSString *strJson = @"[{\"Id\": 1,\"BrandName\": \"爱马仕\" },{\"Id\": 2,\"BrandName\": \"安娜苏\"}]";     NSArray *arrlist=[strJson objectFromJSONString];    NSLog(@"%d",[arrlist count]);    for (int i=0; i<[arrlist count]; i++) {        NSDictionary *item=[arrlist objectAtIndex:i];        NSString *BrandName=[item objectForKey:@"BrandName"];        NSLog(@"%@",BrandName);    }字典arrlist便是解析好的json文件了。JSONKit库也可以用来生成json文件NSMutableDictionary *jsonDic = [NSMutableDictionary dictionary];NSMutableDictionary *alert = [NSMutableDictionary dictionary];NSMutableDictionary *aps = [NSMutableDictionary dictionary];[alert setObject:@"a msg come!" forKey:@"body"];[aps setObject:alert forKey:@"alert"];[aps setObject:@"3" forKey:@"bage" ];[aps setObject:@"def.mp3" forKey:@"sound"];[jsonDic setObject:aps forKey:@"aps"];NSString *strJson = [jsonDic JSONString];另一个,其中operation.responseString就是下面那串json字符串,通过它进行解析:        NSDictionary* resultDictionary=[operation.responseString objectFromJSONStringWithParseOptions:JKParseOptionLooseUnicode];        NSLog(@"%@ Items Found!",[resultDictionary objectForKey:@"weatherinfo"]);        //{"weatherinfo":{"city":"北京","cityid":"101010100","temp":"3","WD":"北风","WS":"3级","SD":"24%","WSE":"3","time":"11:25","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB","njd":"暂无实况","qy":"1028"}}                self.weaLableInfo.text=[NSString stringWithFormat:@"城市:%@,温度:%@",[[resultDictionary objectForKey:@"weatherinfo"]objectForKey:@"city"],[[resultDictionary objectForKey:@"weatherinfo"]objectForKey:@"temp"]];

三十七:三十五:afnetworking2.0运用,结合json,引入afnetworking文件后,引入头文件就可以使用,支持arc

- (IBAction)JsonAction:(UIBarButtonItem *)sender {    NSString* weatherUrl=[NSString stringWithFormat:@"%@%@.html",BaseURLString,self.UrlString];        AFHTTPRequestOperationManager* manager=[AFHTTPRequestOperationManager manager];    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];    [manager GET:weatherUrl parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {               NSDictionary* resultDictionary=[operation.responseString objectFromJSONStringWithParseOptions:JKParseOptionLooseUnicode];        NSLog(@"%@ Items Found!",[resultDictionary objectForKey:@"weatherinfo"]);        //{"weatherinfo":{"city":"北京","cityid":"101010100","temp":"3","WD":"北风","WS":"3级","SD":"24%","WSE":"3","time":"11:25","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB","njd":"暂无实况","qy":"1028"}}                self.weaLableInfo.text=[NSString stringWithFormat:@"城市:%@,温度:%@",[[resultDictionary objectForKey:@"weatherinfo"]objectForKey:@"city"],[[resultDictionary objectForKey:@"weatherinfo"]objectForKey:@"temp"]];           } failure:^(AFHTTPRequestOperation *operation, NSError *error) {        NSLog(@"Error:%@",error);    }];    }带post参数到服务端AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];//申明返回的结果是json类型manager.responseSerializer = [AFJSONResponseSerializer serializer];//申明请求的数据是json类型manager.requestSerializer=[AFJSONRequestSerializer serializer];//如果报接受类型不一致请替换一致text/html或别的manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];//传入的参数NSDictionary *parameters = @{@"1":@"XXXX",@"2":@"XXXX",@"3":@"XXXXX"};//你的接口地址NSString *url=@"http://xxxxx";//发送请求[manager POST:url parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {    NSLog(@"JSON: %@", responseObject);} failure:^(AFHTTPRequestOperation *operation, NSError *error) {    NSLog(@"Error: %@", error);}];

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
IOS中Json解析的四种方法
iOS开发
ios 中使用SBJson拼接和解析json
IOS 5 解析Json
利用ASIHTTPRequest请求java服务和JSONKit解析返回的json串
四种json解析和xml解析
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服