iOS ViewController間傳值

delegate方式和block方式

解決方案一:delegate方式

從當前頁面傳值給上一個頁面,使用delegate

回傳值

第一個頁面:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
//獲取跳轉的ViewController
    SecondViewController* vc = segue.destinationViewController;
    vc.delegate = self;
}

//實現協議方法
-(void)userDidEnterName:(NSString *)info{
    self.nameLabel.text = info;
}

第二個頁面:
.h文件

@protocol DataEnterDelegate<NSObject>
-(void)userDidEnterName:(NSString* )info;
@end

@interface SecondViewController : UIViewController<UITextFieldDelegate>
@property (nonatomic) id <DataEnterDelegate> delegate;
@end

.m文件

//點擊按鈕返回前一個頁面
- (IBAction)okBtPressed:(id)sender {
    [_delegate userDidEnterName:self.nameTxt.text];
    [self.navigationController popViewControllerAnimated:YES];
}

解決方案二:block方式

第一個頁面:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    SecondViewController* vc = segue.destinationViewController;
 
//給后一個頁面的成員變量block賦值   
    vc.returnValueBlock = ^(NSString* text){
        self.nameLabel.text = text;
    };
    
}

第二個頁面:
.h文件

typedef void(^returnValueBlock)(NSString* text);
@interface SecondViewController : UIViewController<UITextFieldDelegate>
@property(nonatomic) returnValueBlock returnValueBlock;

-(void)returnValue:(returnValueBlock)block;
@end

.m文件

//set block
-(void)returnValue:(returnValueBlock)block{
    self.returnValueBlock = block;
}

- (IBAction)blockBtPressed:(id)sender {
    if (self.returnValueBlock != nil) {
        self.returnValueBlock(self.nameTxt.text);
    }
    [self.navigationController popViewControllerAnimated:YES];
}

iOS新手上路,多多指教……(_)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • iOS網絡架構討論梳理整理中。。。 其實如果沒有APIManager這一層是沒法使用delegate的,畢竟多個單...
    yhtang閱讀 5,252評論 1 23
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結起來就是把...
    Dove_iOS閱讀 27,212評論 30 472
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,969評論 19 139
  • 【公告】測試【公告】
    感謝經歷_31be閱讀 668評論 0 0
  • “寧枉勿縱”還是“寧縱勿枉”? 最近經由經濟學的介紹的一個統計概念,真是讓我廓然開朗。 人類會犯兩種錯誤。比方說在...
    今古醉仙人閱讀 351評論 0 0