ios 设置委托delegate

为了进行页面传值,也可以用委托的方法。

下面以时间控件为例。

1.首先,在.h 文件设置委托

#import <UIKit/UIKit.h>

@protocol DatePickerViewDelegate;

@class DatePickerView;
@interface DatePickerView :UIView

@property (strong, nonatomic) NSString      *dateContent;
@property (strong, nonatomic) UIDatePicker *datePicker;
@property (assign, nonatomic) id<DatePickerViewDelegate> delegate;

-(void)show;
@end

@protocol DatePickerViewDelegate <NSObject>
-(void)datePicker:(DatePickerView *)pickerView Picked:(NSDate *)date; //定义方法
@end

2.然后在.m文件设定委托传值

-(void)setBtnAction:(id)sender
{
    [_delegate datePicker:self Picked:self.datePicker.date];  //一定要执行,要不然不会触发下面的,方法-(void)datePicker:(DatePickerView *)pickerView Picked:(NSDate *)date;
}

3.在其他页面设置委托
在.m文件中添加

@interfaceQuQueryViewController () <DatePickerViewDelegate>

@end

1.然后设置委托

DatePickerView *datePicker = [[DatePickerView alloc]init]; //先事实例化
datePicker.delegate = self;  //设置委托
datePicker.flag = sender;
[datePicker show];

2.最后实现方法

-(void)datePicker:(DatePickerView *)pickerView Picked:(NSDate *)date;
{
       date为我们要获得的值。
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS中绑定Unity的委托需要使用Unity提供的UnityBinding文件,该文件定义了Unity中的所有公共API,并提供了Objective-C接口,可以在iOS代码中使用。以下是一个简单的示例代码,演示如何在iOS中绑定Unity的委托: 首先,在Unity中创建一个C#脚本,用于定义需要绑定的委托方法。例如: ``` using UnityEngine; public class DelegateExample : MonoBehaviour { public delegate void OnButtonClickDelegate(string buttonName); public static OnButtonClickDelegate OnButtonClick; public void OnButtonClicked(string buttonName) { if (OnButtonClick != null) { OnButtonClick(buttonName); } } } ``` 在iOS中,需要使用UnityBinding文件中的方法来绑定委托。以下是一个示例代码,演示如何绑定上述的OnButtonClick委托: ``` #import "UnityInterface.h" #import "UnityAppController.h" @interface iOSUnityBridge : UnityAppController<UIApplicationDelegate> @end @implementation iOSUnityBridge - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions { // Initialize Unity UnityInit([[[NSBundle mainBundle] bundlePath] UTF8String], "AppController", [self getUnityAppCommandLine]); // Add Unity view to the current view controller UIView* unityView = (__bridge UIView*)UnityGetGLView(); UIViewController* rootViewController = [UIApplication sharedApplication].keyWindow.rootViewController; [rootViewController.view addSubview:unityView]; // Bind delegate UnitySendMessage("DelegateExample", "set_OnButtonClickDelegate", "iOSUnityBridge", 0); return YES; } - (void)onButtonClick:(const char*)buttonName { NSString* name = [NSString stringWithUTF8String:buttonName]; NSLog(@"Button clicked: %@", name); // Call Unity delegate UnitySendMessage("DelegateExample", "OnButtonClick", buttonName); } @end ``` 在上述代码中,UnitySendMessage函数用于调用Unity中的set_OnButtonClickDelegate方法,将iOS中的iOSUnityBridge类绑定到Unity的OnButtonClick委托上。然后,在onButtonClick方法中,调用UnitySendMessage函数,触发Unity的OnButtonClick委托。 需要注意的是,以上代码只是一个简单的示例,实际实现中还需要考虑更多的细节和异常情况。同时,UnityBinding文件中的方法和接口可能会随着Unity版本的不同而有所变化,需要根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值