gpt4 book ai didi

iphone - 使用协议(protocol)和委托(delegate)在 View Controller 之间传递数据

转载 作者:可可西里 更新时间:2023-11-01 05:55:19 25 4
gpt4 key购买 nike

我正在尝试使用协议(protocol)和委托(delegate)将字符串文本从我的 viewcontroller 2 推送到 viewcontroller 1。我对这种传递数据的方法很陌生,所以如果我以任何方式显得无知,请原谅我。字符串颜色始终返回 null。我将发布目前为止的代码,如果有帮助,我将使用导航 Controller 并使用导航后退按钮从 ViewController 2 转到 ViewController 1。

View Controller 2

.h

@protocol PassString <NSObject>
@required
- (void) setSecondFavoriteColor:(NSString *)string;
@end
@interface ViewController2 : UIViewController{
UIButton *button;
NSString *ee
id <PassString> delegate;
}
@property (retain) id delegate;

View Controller 2

.m

@synthesize delegate;   

-(void)button{
ee = @"Blue Color";
[[self delegate] setSecondFavoriteColor:ee];

View Controller 1.h

@interface ViewController1 : UIViewController <PassString>{
NSString*color;
}
@property (strong,nonatomic) NSString *color

View Controller 1.m

- (void)setSecondFavoriteColor:(NSString *)string
{
color = string;
NSLog(@"%@",color);
}

最佳答案

我在您的代码中注意到几件事,您的属性应包含指定的协议(protocol):

@property (retain) id <PassString> delegate;

在实现委托(delegate)方法的类中的某个时刻,您必须将委托(delegate)分配给 View Controller 1。例如:

[viewController2Instance setPassingDelegate:self];

关于iphone - 使用协议(protocol)和委托(delegate)在 View Controller 之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18562157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com