zoukankan      html  css  js  c++  java
  • ios两视图间托付(delegate)传值

    现有两个视图(ViewController。ViewController1),从ViewController中带參数跳转到ViewController1,在ViewController1选中数据后带有效数据后退到ViewController中。托付实现上述功能。

    项目:点击下载

    一、ViewController主要代码

    // button点击事件
    -(IBAction)clickSearchBtn:(id)sender {
        
        [[[UIApplication sharedApplication] keyWindow] endEditing:YES];
        
        ViewController1 *_viewController = [[[ViewController1 alloc] init] autorelease];
        _viewController.delegate = self;
        _viewController.transText = self.textField.text;
        
        [self.navigationController pushViewController:_viewController animated:YES];
    }
    
    // ViewController1Delegate 的代理方法
    -(void)selectData:(NSString*)text{
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            [self.listArray removeAllObjects];
            for (int i=0; i<5; i++) {
                [self.listArray addObject:[NSString stringWithFormat:@"第%d行数据:%@_%d",i+1,text,arc4random_uniform(100)]];
            }
            dispatch_async(dispatch_get_main_queue(), ^{
                [self.dataTableView reloadData];
            });
        });
    }
    

    二、ViewController1主要代码

    // ViewController1.h
    // delegate写在#import之前,否则可能会Delegate Cannot find protocol declaration
    @protocol ViewController1Delegate;
    @protocol ViewController1Delegate <NSObject>
    
    @optional
    -(void)selectData:(NSString*)text;
    @end
    
    // ViewController1.m
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
        
        if ([self.delegate respondsToSelector:@selector(selectData:)]) {
            
            //通过托付协议传值
            [self.delegate selectData:[self.listArray objectAtIndex:indexPath.row]];
            [self.navigationController popViewControllerAnimated:YES];
        }
    }


    三、效果图

      

  • 相关阅读:
    红黑树——以无厚入有间
    红黑树——依天理以神遇
    B-树 分合之道
    B-树 动机与结构
    云心出岫——Splay Tree
    双散列和再散列暨散列表总结
    开放定址法——平方探测(Quadratic Probing)
    [LeetCode 109]
    [LeetCode 110]
    [LeetCode 111]
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/6703908.html
Copyright © 2011-2022 走看看