**設計模式,是ios中一種訊息傳遞的方式,由**物件、委託者、協議組成。
宣告協議:
nextviewcontroller.h
#import ns_assume_nonnull_begin
//宣告協議
@protocol nextviewcontrollerdelegate //協議中必須完成的方法
- (void)sendvalue:(nsstring *)string;
@end
@inte***ce nextviewcontroller : uiviewcontroller
//持有delegate的為委託者
@property (nonatomic, weak) iddelegate;
@end
ns_assume_nonnull_end
委託者(指定**需要完成的方法):
nextviewcontroller.m
#import "nextviewcontroller.h"
@inte***ce nextviewcontroller ()
//委託者
@property (nonatomic, strong) uitextfield *sendvaluetextfield;
@property (nonatomic, strong) uibutton *backbutton;
@end
@implementation nextviewcontroller
- (void)viewdidload
- (void)clickbtn:(uibutton *) sender
}}@end
**者:實現協議中的方法
viewcontroller.m
#import "viewcontroller.h"
#import "nextviewcontroller.h"
@inte***ce viewcontroller ()//**
@property (nonatomic, strong) uitextfield *gettextfield;
@property (nonatomic, strong) uibutton *nextbutton;
@end
@implementation viewcontroller
- (void)viewdidload
- (void)pushnext:(uibutton *)sender
- (void)sendvalue:(nonnull nsstring *)string
@end
協議
#import ns_assume_nonnull_begin
//宣告**
@protocol funviewdelegate - (void)viewdelegatefunc;
@end
@inte***ce myview : uiview
//持有**
@property (nonatomic, weak) idviewdelegate;
@end
ns_assume_nonnull_end
委託者
#import "myview.h"
@implementation myview
//定義方法
- (void) touchesbegan:(nsset*)touches withevent:(uievent *)event
}@end
**者
@inte***ce viewcontroller ()//**類
@end
@implementation viewcontroller
- (void)viewdidload
#pragma mark - viewdelegatefunc**方法
- (void) viewdelegatefunc
@end
**實現了不同檢視之間的資料互動,只有某一事件觸發才會被呼叫,在使用**時,**者要遵循**,設定**,實現**方法,只有設定了**,才能呼叫**方法。
委託類中需要宣告相應協議,型別為id,用nonatomic和weak進行修飾,防止迴圈引用。
在委託類的實現檔案中,需要觸發**事件的地方通過self.delegate來呼叫方法
在**類的實現檔案中,需要匯入標頭檔案,並遵循**。
參考:ios中delegate的使用
ios 設定委託delegate
為了進行頁面傳值,也可以用委託的方法。下面以時間控制項為例。1.首先,在.h 檔案設定委託 import protocol datepickerviewdelegate class datepickerview inte ce datepickerview uiview property stron...
iOS開發基礎
1 乙個應用程式是怎麼啟動的?當我們基於xcode模版建立應用程式時,應用程式啟動時大部分的環境引數會被自動設定。uikit框架提供了乙個應用程式需要構建和管理它的使用者介面的所有類 啟動 結束應用程式,控制介面和觸點事件 uikit是cocoa touch提供的眾多物件導向框架中的乙個。cocoa...
ios中關於delegate(委託)
ios中關於delegate 委託 的使用心得 直覺 從開始從事oc工作到現在大概1年多了,從當初接觸oc的 協議 的不明白,到現在 中隨處可見的委託,協議,其中感悟頗多。首先,大家應該都明白的是委託是協議的一種,顧名思義,就是委託他人幫自己去做什麼事。也就是當自己做什麼事情不方便的時候,就可以建立...