UI08_UITableView界面传值(后往前)
2015-08-08 16:35
295 查看
应用的方法还是协议模式
在传值的试图控制器SecondViewController的.h文件中
SecondViewController.m
被传值的MainViewContrller.m文件中
在传值的试图控制器SecondViewController的.h文件中
@protocol SencondViewControllerDelegate <NSObject> -(void)changeValue:(NSString *)str; @end 定义所用的属性 @interface SencondViewController : UIViewController @property (nonatomic,copy)NSString *name; @property (nonatomic,assign)id<SencondViewControllerDelegate>delegate; @end
SecondViewController.m
定义所需要的属性: @interface SencondViewController () @property (nonatomic,retain)UILabel *label; @property (nonatomic,retain)UITextField *textField; @property (nonatomic,retain)UIButton *button; @end 属性内存释放: - (void)dealloc { [_label release]; [_textField release]; [_name release]; [super dealloc]; } ViewDidLoad方法里创建所需的控件 如下: self.view.backgroundColor=[UIColor redColor]; self.label=[[UILabel alloc]initWithFrame:CGRectMake(100, 100, 100, 40)]; self.label.layer.borderWidth=1; self.label.layer.cornerRadius=10; self.label.text=self.name; [self.view addSubview:self.label]; [_label release]; self.textField=[[UITextField alloc]initWithFrame:CGRectMake(100, 200, 100, 40)]; self.textField.layer.borderWidth=1; self.textField.layer.cornerRadius=10; [self.view addSubview:self.textField]; [_textField release]; self.button=[UIButton buttonWithType:UIButtonTypeSystem]; [self.button setTitle:@"返回" forState:UIControlStateNormal]; self.button.layer.borderWidth=1; self.button.frame=CGRectMake(100, 300, 100, 40); [self.view addSubview:self.button]; [self.button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside]; 点击方法 -(void)buttonAction:(UIButton *)button{ [self.navigationController popToRootViewControllerAnimated:YES]; [self.delegate changeValue:self.textField.text]; }
被传值的MainViewContrller.m文件中
在此文件中对tableView进行初始值设置,向其内添加视图文件,签署两个协议实现它的两个必须实现的方法和点击方法 我们在它的点击方法里,设置相关的协议内容 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { SencondViewController *second=[[SencondViewController alloc]init]; second.delegate=self; second.name=self.arr[indexPath.row]; [self.navigationController pushViewController:second animated:YES]; } 实现协议方法 -(void)changeValue:(NSString *)str { //属性的数组,相当于是数据源,把传过来的值添加到数组中 [self.arr addObject:str]; //对tableView进行刷新操作 [self.tableView reloadData]; }
相关文章推荐
- UVA 1423 Guess 【拓扑排序】
- 深入分析Android (build/core/*.mk脚本)
- BlockingQueue
- poj 2229 Ultra-QuickSort (归并排序求逆序数对)
- Selenium2学习-033-WebUI自动化实战实例-031-页面快照截图应用之二 -- 区域截图
- hdu 1711Number Sequence (KMP——输出模式串第一次出现位置)
- UIButton
- android stduio 引入 .so
- UISegmentedControl方法与属性的总结
- UI08_UItableView(关于cell滑动条消失,隐藏cell线,解决cell的线不对应问题)
- 周赛-Equidistant String
- 周赛-Equidistant String 分类: 比赛 2015-08-08 15:44 6人阅读 评论(0) 收藏
- iOS基础-UIKit框架-触摸事件-事件传递
- Xib中UIScrollView添加约束步骤
- UILabel与UIFont的用法和属性的一些总结
- 蓝牙协议(bluetooth spec)
- UIActivityIndicatorView控件的属性和方法
- UIProgress控件的属性和方法
- UIPageControll 的属性和用法
- Ultra-QuickSort