iOS delegate 實現頁面之間的傳值

2021-06-07 12:45:13 字數 787 閱讀 6479

最近剛剛接觸ios開發,也沒有一本好的書可以閱讀,所有的功能都只能靠自己的摸索實現。這兩天在做多個頁面之間的跳轉和傳值問題,

頁面跳轉看我另一篇文章

現在將用delegate來傳值

一開始看網上的資源有些看不懂,總感覺很高深的樣子

後來一想,實際上delegate傳值的實質就是:

比如右ab兩個頁面,a想要傳值給b ,就只要先在a中得到b的指標,然後將想要傳的值賦給b,之後跳轉,

話不多說上**

首先我們需要建乙個delegate:

@protocol passvaluedelegate

- (void)setvalue:(nsstring *)value;

@end

其實這個主要是為了更好的管理你需要傳遞什麼值

然後然後在a.h裡面定義

@inte***ce a:tttableviewcontroller

@property(nonatomic, retain) idpassdelegate;

在a.m裡面

@synthesize passdelegate;

(我的類不夠直觀,摘別人的文字把)

然後在需要跳轉的時候,

buttonclicked:(id) sender

- (void) setvalue:(nsstring *) value;

在b.m裡面

- (void) setvalue:(nsstring *) value

實現了這些函式以後

你就在b中得到了a傳來的值 也就是_value這個變數

ios delegate迴圈引用

所有的引用計數系統,都存在迴圈應用的問題。例如下面的引用關係 物件a建立並引用到了物件b.物件b建立並引用到了物件c.物件c建立並引用到了物件b.這時候b和c的引用計數分別是2和1。當a不再使用b,呼叫release釋放對b的所有權,因為c還引用了b,所以b的引用計數為1,b不會被釋放。b不釋放,c...

ios delegate的語法注意

1 屬性或者成員變數中不能加括號 property nonatomic,weak id delegate 這個寫法中id不能加小括號,比如 id 語法是不正確的。2 在作為函式引數中需要加小括號 ios中函式引數的型別是用小括號的,所以delegate的尖括號外也需要有小括號 比如下面 1 nsst...

iOS delegate的優勢及缺點

聯絡人 石虎暱稱 嗡嘛呢叭咪哄 一 delegate優勢 1.非常嚴格的語法。所有將聽到的事件必須是在 delegate 協議中有清晰的定義。2.如果 delegate 中的乙個方法沒有實現那麼就會出現編譯警告 錯誤 3.協議必須在 controller 的作用域範圍內定義 4.在乙個應用中的控制流...