求助swift 页面跳转UIViewController 之间的跳转

一.通过Delegate来传递数据本节主要来讲解如何使用委托delegate在不同窗口之间传递数据,具体内容来看下面的详细内容。比如: 在窗口1中打开窗口2,然后在窗口2中填入一个数字,这个数字又回传给窗口1。窗口1窗口2窗口2的结果传递给窗口11、首先定义个一委托UIViewPassValueDelegate用来传递值@protocol UIViewPassValueDelegate - (void)passValue:(NSString *) @end 这个protocol 就是用来传递值2、在窗口1的头文件里,声明delegate#import &UIKit/UIKit.h& #import "UIViewPassValueDelegate.h" @interface DelegateSampleViewController : UIViewController &UIViewPassValueDelegate& {
UITextField *_ } @property(nonatomic, retain) IBOutlet UITextField * - (IBAction)buttonClick:(id) @end 并实现这个委托- (void)passValue:(NSString *)value {
self.value.text =
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 setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentModalViewController:valueView animated:YES]; } 第二个窗口的实现.h 头文件#import &UIKit/UIKit.h& #import "UIViewPassValueDelegate.h"
@interface ValueInputView : UIViewController {
NSObject&UIViewPassValueDelegate& *
UITextField *_ } @property(nonatomic, retain)IBOutlet UITextField * @property(nonatomic, retain) NSObject&UIViewPassValueDelegate& * - (IBAction)buttonClick:(id) @end .m实现文件#import "ValueInputView.h" @implementation ValueInputView @ @synthesize 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 = }
@end &&&&二.利用单例实现不同界面间的数据传输 首先写一个单例类,继承NSObject  check.h文件中 @property(strong ,nonatomic) UITable * T @property(strong ,nonitomic) UITextFiled * T +(check*)shareDataM  check.m中  //定义一个静态的checke类的对象,并赋给一个空值  static check * dataModle =  +(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].L 
 self.danHao.text = [check shareDataModle].T  }&三.iOS开发中使用[[UIApplication sharedApplication] openURL:] 加载其它应用&在iOS开发中,经常需要调用其它App,如拨打电话、发送邮件等。UIApplication:openURL:方法是实现这一目的的最简单方法,该方法一般通过提供的url参数的模式来调用不同的App。通过openURL方法可以调用如下应用:调用浏览器(Safari Browser)[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@""]]; &调用谷歌地图(Google Maps)NSString *addressText = @"7 Hanover Square, New York, NY 10004"; addressText = [addressText stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding]; NSString* urlText = [NSString stringWithFormat:@"/maps?q=%@", addressText]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlText]]; 调用邮件客户端(Apple Mail) [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://"]]; 拨号(Phone Number) [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://"]]; 调用短信(SMS)[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://466453"]]; 调用应用商店(AppStore)[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"/WebObjects/MZStore.woa/wa/viewSoftware?id=&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打开该文件,可以看到刚才写入的数据。&&&
iOS 用delegate方式实现页面之间的传值 - iPhone手机开发技术文章...斌子刚刚接触IOS今天做项目的时候,遇到一个问题,在跳页时需要进行传参数。上找了许多方法,书上也没有找到很好的方法。所有功能都得自己慢慢...iOS 页面之间如何传值? - 好问 - welpiOS 页面之间如何传值?我要从A页面传值(字典)给B页面,什么方式传值好呢? 球类似的demo或者链接 谢谢galiton ,提出该问题 iphone 传值 iOS ...iOS页面间传值的方式(Delegate/NSNotification/Block/NSUser...[摘要]本文是对iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault)的讲解,对学习IOS苹果软件开发有所帮助,与大家分享。 iOS页面间传值的方式(...iOS 页面传值 ---CSDN论坛-CSDN-中国最大的IT技术社区8条回复&-&发帖时间:&日ios (页面)对象之间简单的传值方式总结 - What_If - 博客园ios (页面)对象之间简单的传值方式总结 Posted on
16:20 What_If 阅读(... 方法一、通过属性来传值 方法1:初始化方式 方法二、通过类目来...IOS 页面间传值及自定义类拷贝问题_iOS开发_电脑学(Xue5)【iOS开发】 iOS开发:IOS 页面间传值及自定义类拷贝问题[ 来源:OSCHINA | ...还要实现NSCopying协议方法 - (id)copyWithZone:(NSZone *)zone ...IOS 页面传值如何实现_百度知道1个回答 - 提问时间: 日小菜鸟,1 自定义cell,给cell加个属性 2 delegate传值,大材小用 3 block 这个破东西还需要demo?ios 页面传值4种方式(一) 之全局变量-手机软件-电脑编程导读:ios 页面传值4种方式(一) 之全局变量运用该方法1.解决了我在哈哈项目里查看详细XIB第一行不能显示hahaItem的问题~ 鼓掌~~~通用的是用代理的...IOS 委托代理(delegate)实现页面传值 | 码农日记
2.2实现委托方法下面讲解一下使用委托实现页面传值的解决方法:...分类目录 Android HTML&Web iOS 云技术 未分类 杂七杂八 算法 ...Windows phone 7开发(二)页面间跳转与传值_WP/ios/android_MHZG 二.传值 对于页面间的传值,可以使用PC上的Sliverlight 或Asp的传值方式...WP/ios/android 1Windows phone 7开发(六)— 2Windows phone 7开发(五)一个...【iOS属性传值】iOS属性传值开发,iOS属性传值资源下载-CSDN iOS 各种传值方式(属性传值/代理传值/单例传值) 摘要:属性传值 将A页面所拥有的信息通过属性传递到B页面使用B页面定义了一个naviTitle属性,在A页面中直接...2个页面间不通过Session与url的传值方式 - 百科教程_经验分享... [资料] 2个页面间不通过Session与url的传值方式 [资料] ASP页面间的传... [视频] 千锋-iOS开发视频教程-UI第1季-3.8-UINavigaionController中的传值...利用Swift之协议语法实现页面间的传值功能-IOS-第七城市式的实现一个页面传值的demo,使用语法是swift,页面传值是学习iOS初期必修的demo... 注意不同点啊,就是在不为空这里将姓名传递到协议方法的参数里面带到首页来...[操作系统]IOS 页面间跳转_郑少群个人两个APP之间的跳转是通过[[UIApplication sharedApplication] openURL:url]这种方式... 使得textField显示另一个页面传过来的数据。 ios俩个APP之间跳转、传值,码迷...flex两个页面之间的传值方式_百度文库&评分:4/5&2页Flex 页面传值方式 1. 两个不同的页面之间传值:传值方: var so:SharedObject = SharedObject.getLocal(&validate&,&/&); //validate 是临时文件 so.data...IOS--UI之属性传值与方法传值-IOS-第七城市iOS编程,视图与视图之间的传值总共有以下7种方法:1.属性2.方法3.协议4.单例5.消息中心6.block7.本地存储 一.属性传值 MainViewController与SecondView...【iOS界面处理】使用storyboard实现页面跳转,简单的数据传递 - ...界面间传值的方式-IOS-第七城市首页 - 络编程 - IOS 界面间传值的方式 22:11:15http://... 单例传值:适合于从前往后传,从后往前传都可以,但是内存空间不会被释放直到...页面传值 - 豆丁页面传值,jsp页面传值,asp页面传值,html页面传值,c#页面传值,php页面传值,js页面传值,页面传值方式,ios页面传值, 页面传值【IOS 页面属性传值委托传值单例传值】IOS 页面属性传值委托传值... IOS 页面属性传值、委托传值、单例传值 摘要:IOS 页面属性传值、委托传值、单例传值 15:13 9人阅读 评论(0) 收藏 举报IOS 页面属性...Windows Phone编程中页面间传值方法 - 51CTO实现第一个传值要求的方法很简单,只要通过给NavigationService的目标页面附带... 平台 移动Web|Android|iOS|Windows Phone 应用 移动应用|移动团队|应用商店|...提高ASP 跨页面传值技巧_ASP语言_硅谷动力★★ 提高 ASP 跨页面传值技巧 使用QueryString变量 QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的栏中iOS页面间传值的方式(Delegate/NSNotification/Block/NSUser...[]iOS页面间传值的方式(NSUserDefault/Delegate/NSNotification/Block/单例) 实现了以下iOS页面间传值:1.委托delegate方式;2.通知notification方式;3.block方式;4.User...iOS 页面间传值及自定义类拷贝问题 - 豆丁 iOS 页面间传值及自定义类拷贝问题 摘要: 做络相关的一些问题时,有时候值...写上拷贝的方法- (id)copyWithZone:(NSZone *)zone,这样这个类才会像NSString...iOS 各种传值方式iOS 各种传值方式
| 阅: 转: | 分享 属性传值 将A页面所拥有的信息通过属性传递到B页面使用 B页面定义了一个naviTitle属性,在A页面中直接通过...ios页面跳转传值 - 下载频道 - CSDNios页面跳转 delegate 隐藏键盘一个小小的登陆跳转到一个显示输入的内容... ios页面跳转 delegate 隐藏键盘一个小小的登陆跳转到一个显示输入的内容资源积分:1分 下载...【Android基础】页面跳转与传值(Activity跳转与传值) - 右撇子 - ... 本次我们就讲一下,Android中页面跳转以及传值的几种方式! Activity跳转与传值... 全部主题 Hadoop AWS 移动游戏 Java Android iOS Swift 智能硬件 Docker ...iOS页面间传值的方式(Delegate/NSNotification/Block/NSUser... 实现了以下iOS页面间传值:1.委托delegate方式;2.通知notification方式;3.block方式;4.UserDefault或者文件方式;5.单例模式方式;6.通过设置属性,实现页面间传值 ...ios--NavigationViewController跳转、返回传值 - iPhone手机开发... 来源:ios--NavigationViewController跳转、返回传值 收藏 我要投稿 使用NavigationViewController进行页面跳转时,应该使用pushViewController方法来跳转至下一页面,这...[ASP教程]Action向视图传值的6种方式_郑少群个人是以request方式的值的,而不是以参数传值 所以request.getParameter(&&)... Objective-C ,ios,iphone开发基础:多个视图(view)之间的切换2,... struts2-coc-...用delegate方法在不同页面传值 | iOS开发讨论区 - CocoaChina ...9条回复&-&发帖时间:&日ios 页面传值4种方式(一) 之全局变量_无忧开发,,PHP,Java,...ios 页面传值4种方式(一) 之全局变量 运用该方法1.解决了我在哈哈项目里查看详细XIB第一行不能显示hahaItem的问题~ 鼓掌~~~通用的是用代理的方式实现页面传值,...ASP页面间传值的几种方式 - MicrosoftCenterOfHN的专栏 - ... 2。使用Session变量 使用Session变量是可以在页面间传递值的的另一种方式,在本... 全部主题 Hadoop AWS 移动游戏 Java Android iOS Swift 智能硬件 Docker ...1569人阅读
/downloads/code/24.html
刚学iOS开发的时候,跟着书本也用过苹果的拖动摆放图形界面是不是叫UIBuilder?
后来不知什么时候就不用了,现在回头看看,那些工具就是在误导,让你以为很简单,但是用好很难,维护起来...不说了,你懂得。
那么现在我们就看看纯用代码写界面到底有多难?
首先我们要记住一点,在界面上你所看到的基本都是UIView这个类,即:一切都是View!我们不过是在用View来堆叠我们的界面罢了。
第一课:在程序中添加 UIWindow。UIWindow也是UIView的子类,这个是我们的程序窗口,我们一个程序的最基本承载界面(其他的界面都是添加到这个窗口上的)。
第二课:在程序中添加 UIView。这回我们打交道最多的主角出现了,这个Demo我们练习用几句代码在Window上添加一个View。
第三课:在程序中添加 UIViewController----视图控制器,即MVC模型中的V和C,集视图和控制于一身,但终归他也是个视图,这demo我们学习怎样在window上添加一个ViewController。UIViewController也是以后程序开发中最常用的子视图(就是你手机的每个跳转页面)承载界面。
第四课:在UIViewController上添加 UIView UIImageView UILabel。这节demo我们学习在UIViewController的View上添加 UIView UIImageView UILabel。
第五课:在UIViewController上添加 UITextField UITextView UIButton。这节demo我们学习在UIViewController的View上添加 UITextField UITextView UIButton。
第六课:在UIViewController上添加 UIScrollView。
&第七课:在UIViewController上添加 UITableView。
&第八课:自定义 UITableViewCell。
第九课:UIViewController之间的导航 跳转。
第十课:使用UITabBarController建立底部切换导航的程序界面。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:170607次
积分:2397
积分:2397
排名:第5996名
原创:64篇
转载:118篇
评论:11条
(4)(1)(2)(6)(7)(8)(3)(3)(2)(16)(2)(3)(1)(3)(1)(6)(6)(10)(5)(13)(8)(1)(3)(6)(9)(3)(10)(2)(2)(16)(10)(10)Stroyboard 可以被看作一个管理View画面的集合。也就是说一个iOS专案裡面并没有限制只能有一个Storyboard。所以在你的APP专案中,你可以把功能相近的View放到同一个APP之中,形成一个群组,方便功能上的管理。
1.在专案中准备2个Storyboard
在一个IOS的专案裡面建立两个StoryBoard。
2. 在第一个StoryBoard中,我们拉出了一个Navigation 的Template,在[Main View Controller]这个中View裡面拉进一个Button。3. 接著在第二个StoryBoard裡面我们也拉出一个Navigation template。在画面中拉一个Label标籤,并且在裡面我们把文字改成Storyboard2。这只是用来识别目前我们被带到哪一个画面之中。4. 在第一个StoryBoard画面中的Botton裡面,我们要在按钮的[TouchUpinside]事件中撰写底下的程式码。UIStoryboard *secondStoryBoard = [UIStoryboard storyboardWithName:@"Storyboard2" bundle:nil];UIViewController* test2obj = [secondStoryBoard instantiateViewControllerWithIdentifier:@"test2"]; &//test2为viewcontroller的StoryboardId[self.navigationController pushViewController:test2obj animated:YES];第一步就是要先指定UIStoryboard物件,这边我们要指向专案中的第二个Storyboard。接下来我们要先New出一个Controller物件,这是你要Push到的下一个View页面,他所对应的Controller。最后使用self.navigationController推网页到下一页。
阅读(...) 评论()导读-抢沙发 -
swift开发社区 -
Powered by Discuz!
后使用快捷导航没有帐号?
iOS开发微信公众账号:iOSDevTip,主要用于召集iOS高手参与技术讨论,同时分享移动互联网资讯,最重要的是:还可以帮大家找到合适的工作
蹲下来,和孩子一起看世界。数十万家长喜爱和关注的专业育儿帮手,为您免费提供最权威的儿童早教及儿童成长相关信息,让您的孩子赢在成长的路上。
Powered by

我要回帖

更多关于 swift code 的文章

 

随机推荐