首先是定義兩個介面()
介面一:
介面二:
通過Delegate來實現:(第一個類把自己的一些事件委託給了 ViewDelegate這個類去完成,而第二個類中去操作了這個代理,就是賦給它了數值,這樣第一個類就可以通過代理來得到數值了)
首先要定義一個代理的類:
名字自己去定義,裡面定義一個傳值的方法
@protocol ViewDelegate-(void) passValue:(NSString *)value;//用於傳值的方法@end
用法:
//在第一個介面類中: #import "ViewDelegate.h"//匯入這個寫好的代理類 @interface ViewController : UIViewController<ViewDelegate> //在.m檔案中,在寫好的跳轉方法: - (void) Next { NextViewController *next = [[NextViewController alloc]initWithNibName:@"NextViewController" bundle:[NSBundle mainBundle]];//初始化下一個介面 next.delegate = self;//將這個類中的self傳遞給NextViewController類的delegate /* 這一句話是最重要的,delegate 是在NectViewController這個介面中定義好的 代理類的對象 NSObject<ViewDelegate> *delegate; @property(nonatomic,assign)NSObject<ViewDelegate> *delegate; 通過 next.delegate = self; 這句話,給人的感覺就好像是 把第二個類中的 delegate 初始化了一樣,也使得這兩個類通過代理類串連了起來 這樣,在第二個類中 就可以用delegate這個代理類的對象去調用它自己的方法來進行賦值(在返回上一個頁面的時候操作) - (void) Back//點擊 back 的方法 { [delegate passValue:self.nameText.text];//通過delegate調用代理方法 [self dismissModalViewControllerAnimated:YES]; } 這樣呢,就相當於passValue這個方法中的參數儲存了 數值 然後在第一個類中 去實現這個方法就可以得到從第二個類傳過來的數值了 - (void)passValue:(NSString *)value { self.nameLabel.text = value;//把數值在label中顯示出來 } */ [self presentModalViewController:next animated:YES]; }
原始碼:點擊進入demo下載頁面