资源描述:
《ios窗口间的参数传递》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、IOS窗口间的参数传递前言:生命不止,折腾不休.窗口间传参数,一般用什么代理模式,(到现在还没有搞懂代理,所以不鸟这个.),难道不能向windows,安卓一样,几行代码就完成参数传递,非要写一堆的代理文件?1.子窗口头文件中,定义2个窗口级的变量:para存放父窗口传过来变量,pvc保存父窗口指针.和两个函数:设置参数与设置父窗口.(说人话:就是定义了参数和保存父窗口的set方法)1.@interface LoginViewController : UIViewController{ 2. 3. UIButton *mybut; 4. //变量1:保存父窗口传递的函数 5.
2、 NSString * para; 6. //变量2:保存父窗口ViewController指针 7. UIViewController *pvc; 8. 9. //函数1:保存父窗口View指针 (返回值) 函数名:(参数1类型)参数1名称 10. -(void)SetParentView:(UIViewController *)viewController; 11. //设置初始化参数 12. //函数2:让父窗口向子窗口设置参数 (返回值) 函数名:(参数1类型)参数1名称 13. -(void)setPara:(NSSt
3、ring *)pwin_para; 14.} 2.子窗口m文件中实现这两个方法.1.@implementation LoginViewController 2. NSLog(@"父窗口参数:%@",pWinPara); 3. //调用父窗口函数 4. [(ViewController *)pvc finishWindow:@"子窗口调用父窗口函数:老子就灿烂!!"]; 5. //关闭窗口 6. [self dismissViewControllerAnimated:YES completion:nil]; 7.} 8. 9.//设置初始化参数
4、 10.-(void)setPara:(NSString *)pwin_para{ 11.//题外话,之前把参数命名为para始终告警说Local declaration of 'para' hides instance variable 12.//查明原因为与本地函数同名,局部变量与本地函数同名都要闹,闹个屁. 13. pWinPara = pwin_para; 14.} 15. 1.//保存父窗口viewController 2.// (返回值) 函数名:(参数1类型)参数1名称 3.-(void)SetParentView:(ViewController *)vi
5、ewController{ 4. pvc = viewController; 5.} 6.@end 3.父窗口头文件,增加一个函数,让子窗口可以在关闭的时候调用.1.@interface ViewController : UIViewController{} 2.//子窗口关闭时调用 3.-(void)finishWindow:(NSString *)resParam; 4.@end 4.父窗口m文件,实现这个函数1.@implementation ViewController 2.- (IBAction)mianButClick:(id)sender { 3.
6、 NSLog(@"点击了按钮"); 4. LoginViewController *loginController = [[LoginViewController alloc] initWithNibName:@"myView2" bundle:nil]; 5. //初始化子窗口参数 6. [loginController setPara:@"父窗口给你点阳光"]; 7. 8. //将父窗口的传给子窗口备用. 9. [loginController SetParentView:self]; 10. //看不懂,反正用了这个才能
7、调用子窗口 11. UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:loginController]; 12. //window的模式窗口都是弹出后不在执行后面的代码,连js alert都是,ios奇葩,弹出窗口代码之后