• UITableView传值(自己使用)(属性,代理传值)


    今天有些匆忙。

    效果图如下:

    代码如下:

    #import <UIKit/UIKit.h>
    #import "FirstViewController.h"
    
    @interface AppDelegate : UIResponder <UIApplicationDelegate>
    
    @property (strong, nonatomic) UIWindow *window;
    
    
    @end
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        FirstViewController *first=[[FirstViewController alloc]init];
        UINavigationController *navc=[[UINavigationController alloc]initWithRootViewController:first];
        self.window.rootViewController=navc;
        return YES;
    }
    
    #import <UIKit/UIKit.h>
    #import "SecondViewController.h"
    
    @interface FirstViewController : UIViewController<UITableViewDataSource,UITableViewDelegate,postValueDelegate>
    
    @property(strong,nonatomic)UITableView * tableview;
    
    @property(strong,nonatomic)NSMutableArray *array;
    
    
    @property(strong,nonatomic)NSString *st;
    
    
    
    @end
    
    #import "FirstViewController.h"
    
    @interface FirstViewController ()
    
    @property(assign,nonatomic)int a;
    
    @end
    
    @implementation FirstViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        self.view.backgroundColor=[UIColor yellowColor];
        self.title=@"首页";
        UIBarButtonItem *nextItem=[[UIBarButtonItem alloc]initWithTitle:@"下一页" style:UIBarButtonItemStylePlain target:self action:@selector(nextpage)];
        self.navigationItem.rightBarButtonItem=nextItem;
        
        self.array=[NSMutableArray array];
        
        for (int i=1; i<20; i++) {
            [self.array addObject:[NSString stringWithFormat:@"你摔了%d跤",i]];
        }
        
        self.tableview=[[UITableView alloc]initWithFrame:self.view.frame style:1];
        
        self.tableview.separatorColor=[UIColor redColor];
        
        self.tableview.delegate=self;
        
        self.tableview.dataSource=self;
        
        [self.view addSubview:self.tableview];
        
        [self.tableview registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];
    }
    
    
    -(void)postvalue:(NSString *)str
    {
    //    self.st=str;
        
        [self.array replaceObjectAtIndex:self.a withObject:str];
        
        [self.tableview reloadData];
        
       
    //    NSLog(@"%@",self.st);
        
    }
    
    
    #pragma mark 数据源  每个分区显示行数设置
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return self.array.count;
    }
    
    
    
    #pragma mark 数据源  每个单元格显示的内容
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        //单元格重用机制
        static NSString * cellIdentity=@"cell";
        
        UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIdentity forIndexPath:indexPath];
        cell.textLabel.text=self.array[indexPath.row];
        
        
        
        
        
        return cell;
    }
    
    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        
        NSLog(@"%@",self.array[indexPath.row]);
        
    
        self.st=self.array[indexPath.row];
        SecondViewController *second=[[SecondViewController alloc]init];
         second.str=self.st;
        second.delegate=self;
        self.a=(int)indexPath.row;
        
        NSLog(@"%d",self.a);
    
       
        [self.navigationController pushViewController:second animated:YES];
    }
    
    
    
    
    
    
    
    -(void)nextpage
    {
        SecondViewController *second=[[SecondViewController alloc]init];
        
        
        second.str=self.st;
       
        [self.navigationController pushViewController:second animated:YES];
    }
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    /*
    #pragma mark - Navigation
    
    // In a storyboard-based application, you will often want to do a little preparation before navigation
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
        // Get the new view controller using [segue destinationViewController].
        // Pass the selected object to the new view controller.
    }
    */
    
    @end
    

     

    #import <UIKit/UIKit.h>
    //创建协议,声明方法
    @protocol postValueDelegate <NSObject>
    
    -(void)postvalue:(NSString* )str;
    
    @end
    
    @interface SecondViewController : UIViewController<UITextFieldDelegate>
    
    @property(strong,nonatomic) UITextField  * textName;
    
    @property(strong,nonatomic) NSString *str;
    
    @property(strong,nonatomic) id<postValueDelegate> delegate;
    
    @end
    
    #import "SecondViewController.h"
    
    @interface SecondViewController ()
    
    @end
    
    @implementation SecondViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        self.view.backgroundColor=[UIColor greenColor];
        self.navigationItem.hidesBackButton=YES;
        self.title=@"尾页";
        self.navigationItem.leftBarButtonItem=[[UIBarButtonItem alloc]initWithTitle:@"back" style:2 target:self action:@selector(backpage)];
        
        self.textName=[[UITextField alloc]initWithFrame:CGRectMake(100, 300, 150, 60)];
        
        self.textName.borderStyle=1;
        
        self.textName.text=self.str;
        
        self.textName.delegate=self;
        
        [self.view addSubview:self.textName];
    }
    
    -(BOOL)textFieldShouldReturn:(UITextField *)textField
    {
        if ([textField isFirstResponder]) {
            [textField resignFirstResponder];
        }
        
        if (self.delegate) {
            [self.delegate postvalue:self.textName.text];
            
        }
        
        [self.navigationController popToRootViewControllerAnimated:YES];
        
        return YES;
    }
    
    
    -(void)backpage
    {
        if (self.delegate) {
            [self.delegate postvalue:self.textName.text];
            NSLog(@"%@",self.textName.text);
        }
        
        [self.navigationController popToRootViewControllerAnimated:YES];
    }
    
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    /*
    #pragma mark - Navigation
    
    // In a storyboard-based application, you will often want to do a little preparation before navigation
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
        // Get the new view controller using [segue destinationViewController].
        // Pass the selected object to the new view controller.
    }
    */
    
    @end
    
  • 相关阅读:
    Hadoop技术内幕——Hadoop配置信息处理
    协程,线程池
    线程知识点(锁,信号量,队列,条件)
    进程的概念
    socketserver网络编程简单的小例子
    socket 发送文件
    网络编程
    正则表达式
    面对对象--多态封装
    创建可管理的属性:property
  • 原文地址:https://www.cnblogs.com/fume/p/5284851.html
Copyright © 2020-2023  润新知