iOS 頁面之間的傳值總結(jié)

1俘枫、屬性傳值
(1): 屬性傳值第一步需要用到什么類型就定義什么樣的屬性
(2): 從上一個頁面到一個頁面的選中方法里面將要傳的值傳到來(上一個頁面)備注:這種方法只適用于上一個頁面推到下一個頁面冈欢。

如:MainViewController與SecondViewController兩個視圖控制器,點擊MainViewController中的按鈕將跳轉(zhuǎn)到SecondViewController視圖僻孝,同時想要傳遞一個值過去噪猾。這時可以利用屬性傳值。
首先SecondViewController視圖中需要有一個屬性用來 存儲傳遞過來的值:
@property(nonatomic,retain) NSString *firstValue ;//屬性傳值
然后MainViewController視圖需要引用SecondViewController視圖的頭文件,在視圖中的按鈕點擊事件中歉眷,通過SecondViewController的對象將需要傳遞的值存在firstValue中:

 -(void)buttonAction:(UIButton *)button
{
SecondViewController *second =
[[SecondViewController alloc]init];//用下一個視圖的屬性接受想要傳過去的值,屬性傳值
second.firstValue = _txtFiled.text;
[self.navigationControllerpushViewController:second animated:YES];
}
頁面跳轉(zhuǎn)之后,就能在SecondViewController視圖中颤枪,通過存值的屬性汗捡,取用剛才傳遞過來的值:
//顯示傳過來的值[_txtFiledsetText:_firstValue];//firstValue保存?zhèn)鬟^來的值

2、通知傳值
通知中心
NSNotificationCenter提供了一種更加解耦的方式畏纲。最典型的應(yīng)用就是任何對象對可以發(fā)送通知到中心扇住,同時任何對象可以監(jiān)聽中心的通知。
發(fā)送通知的代碼如下:

[[NSNotificationCenterdefaultCenter]     postNotificationName:@”myNotificationName”    object:broadcasterObject];
注冊接收通知的代碼如下:
[[NSNotificationCenterdefaultCenter]     addObserver:listenerObject     selector:@selector(receivingMethodOnListener:)     name:@”myNotificationName”    object:nil];

注冊通知的時候可以指定一個具體的廣播者對象霍骄,但這不是必須的台囱。你可能注意到了defaultCenter。實際上這是你在應(yīng)用中會使用到的唯一的中心读整。通知會向整個應(yīng)用開放簿训,因此只有一個中心。
同時還有一個NSDistributedNotificationCenter。這是用來應(yīng)用間通信的强品。在整個計算機上只有一個該類型的中心膘侮。
優(yōu)點: 通知的發(fā)送者和接受者都不需要知道對方〉拈唬可以指定接收通知的具體方法琼了。通知名可以是任何字符串。
缺點: 較鍵值觀察需要多點代碼夫晌。在刪掉前必須移除監(jiān)聽者雕薪。不能傳大量數(shù)值,只能讓誰去做什么事晓淀。

3所袁、代理協(xié)議傳值
(1)、協(xié)議(protocol)凶掰,就是使用了這個協(xié)議后燥爷,必須按照協(xié)議規(guī)定的內(nèi)容來處理事情,協(xié)議中要求的方法必須實現(xiàn)(@optional的方法除外)懦窘。
protocol是一種語法前翎,它提供了一個很方便的、實現(xiàn)delegate模式的機會畅涂。
定義protocol如下:

1.  @protocol ClassBDelegate<NSObject> 
2.  - (void)methodOne; 
3.  @optional 
4.  - (void)methodTwo:(NSString *)value; 
5.  @end
定義了一個ClassB的協(xié)議港华,這個協(xié)議中包含兩個方法,其中methodTwo為可選的毅戈。
在ClassA的頭文件(ClassA.h)中實現(xiàn)這個協(xié)議苹丸,如下代碼:
1.  @interface ClassA<ClassBDelegate> 
2.  @end
在ClassA的實現(xiàn)文件(ClassA.m)中實現(xiàn)ClassBDelegate的兩個方法,其中methodTwo可以不實現(xiàn)苇经,如下:
1.  - (void)methodOne{ 
2.      // 具體實現(xiàn)內(nèi)容 
3.  } 
4.   
5.  - (void)methodTwo:(NSString *)value{  
6.      // 具體實現(xiàn)內(nèi)容   
7.  }

(2)赘理、代理(delegate),顧名思義就是委托別人辦事扇单,當(dāng)一件事情發(fā)生后商模,自己不處理,讓別人來處理蜘澜。
delegate和protocol沒有關(guān)系施流。delegate本身是一種設(shè)計模式。是把一個類自己需要做的一部分事情鄙信,讓另一個類(也可以就是自己本身)來完成瞪醋。
在ClassB的頭文件(ClassB.h)中定義一個代理如下:

1.  @interface ClassB 
2.  @property (nonatomic, unsafe_unretained) id<ClassBDelegate> delegate; 
3.  @end 
這樣,當(dāng)我們在ClassB的實現(xiàn)文件(ClassB.m)中遇到想讓別的類(如 ClassA)處理的問題時装诡,就可以這樣
1.  [self.delegate methodOne]; 
2.  [self.delegate methodTwo:@"需要傳遞的值"];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末银受,一起剝皮案震驚了整個濱河市践盼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宾巍,老刑警劉巖咕幻,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異顶霞,居然都是意外死亡肄程,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門选浑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蓝厌,“玉大人,你說我怎么就攤上這事古徒」邮迹” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵描函,是天一觀的道長。 經(jīng)常有香客問我狐粱,道長舀寓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任肌蜻,我火速辦了婚禮互墓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蒋搜。我一直安慰自己篡撵,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布豆挽。 她就那樣靜靜地躺著育谬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪帮哈。 梳的紋絲不亂的頭發(fā)上膛檀,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機與錄音娘侍,去河邊找鬼咖刃。 笑死,一個胖子當(dāng)著我的面吹牛憾筏,可吹牛的內(nèi)容都是我干的嚎杨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼氧腰,長吁一口氣:“原來是場噩夢啊……” “哼枫浙!你這毒婦竟也來了刨肃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤自脯,失蹤者是張志新(化名)和其女友劉穎之景,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膏潮,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡锻狗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了焕参。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片轻纪。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖叠纷,靈堂內(nèi)的尸體忽然破棺而出刻帚,到底是詐尸還是另有隱情,我是刑警寧澤涩嚣,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布崇众,位于F島的核電站,受9級特大地震影響航厚,放射性物質(zhì)發(fā)生泄漏顷歌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一幔睬、第九天 我趴在偏房一處隱蔽的房頂上張望眯漩。 院中可真熱鬧,春花似錦麻顶、人聲如沸赦抖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽队萤。三九已至,卻和暖如春矫钓,著一層夾襖步出監(jiān)牢的瞬間浮禾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工份汗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盈电,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓杯活,卻偏偏與公主長得像匆帚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子旁钧,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容