zoukankan      html  css  js  c++  java
  • IOS 页面之间的传值(主讲delegate)

    IOS的Delegate,通俗一点说就是页面之间的传值。

    总结一下现在知道的IOS页面之间传值的方式有三种

    1.使用NSNotification发送通知的传值

    主要是通过NSNotificationCenter发送一个通知,他不知道要把值传给谁,当监听的页面收到通知消息,才会获取到消息。

    2.是利用属性来传值,我主要是用到A->B中A页面要跳转到B页面,也就把B中需要A的参数通过preparFroSegue方法从A传给B

    3.通过NSUserDefault来传值,其主要思想是把值写到本地化的一个文件中,当另外一个页面需要的时候就会通过URL来回去这个文件

    4.通过delegate来传值,只要是A->B页面跳转后,当B中的操作完成以后,要把B中的操作的数据在A的页面显示的时候,这个时候就用到delegate了

    首先:我们需要在B中声明一个delegate

    B.h中代码如下

    @protocol HBAddPersonTableViewControllerDelegate;
    
    @interface HBAddPersonTableViewController : UITableViewController
    
    @property (nonatomic , strong)id<HBAddPersonTableViewControllerDelegate> delegate;
    
    @end
    
    @protocol HBAddPersonTableViewControllerDelegate <NSObject>
    
    -(void)savePayerOrConsumer:(NSArray *)usersInfo isToCunsumer:(BOOL)isToConsume isToPayer:(BOOL)isToPayer;
    
    @end

    B.m中代码如下

    -(IBAction)completeButtonClick:(id)sender
    {
    if(self.delegate)
    {
    [self.delegate savePayerOrConsumer:_selectContact isToCunsumer:_isComeFromGetConsumer isToPayer:_isComeFromGetPayer];
    }
    }

    其中在A页面就要声明这个delegate,并且在.m文件中实现声明的方法,参数的值就是B中的数值

  • 相关阅读:
    “Hello World!”团队第七次Scrum立会
    20170928-2 单元测试,结对
    20170928-4 每周例行报告
    20170928-3 四则运算试题生成
    20170928-1 代码规范,结对要求
    软件工程第六次作业——例行报告
    软件工程第四次作业-2单元测试
    软件工程第四次作业-4每周例行报告
    软件工程第四次作业-3四则运算
    软件工程第四次作业-1代码规范
  • 原文地址:https://www.cnblogs.com/haibosoft/p/4174174.html
Copyright © 2011-2022 走看看