将变量发送到添加的子视图视图控制器
Posted
技术标签:
【中文标题】将变量发送到添加的子视图视图控制器【英文标题】:sending variables to the added subview view controller 【发布时间】:2011-01-11 03:07:40 【问题描述】:我知道如何从您的父视图中检索变量... 这是通过做这样的事情
[(mainViewController *)[self.superview] 变量名];
但现在我想知道如何将可变数据发送到子视图...
特别是如果我做这样的事情
ScreenTwoViewController *screen2 = [[ScreenTwoViewController alloc] init];
...
...
[self.addSubview:screen2.view];
在 screenTwo 我有一个变量名消息:
我想向实际视图发送一条可变消息,以便在将 screen2 视图添加为子视图时,它可以根据父视图发送的内容在该视图中显示消息??
【问题讨论】:
【参考方案1】:如果你已经像这样在子视图中设置了变量的属性。
@property (nonatomic, retain) NSString *message;
并在你的 .m 文件中合成它而不是你总是可以使用它
screen2.message = [[NSString alloc] initWithFormat:@"use what ever init methode that you want"];
并且不要忘记在方法结束之前释放screen2以避免内存泄漏
【讨论】:
【参考方案2】:你有Message
的二传手吗?如果不是,它是财产吗?无论哪种方式,我都会有一个 getter 方法,setMessage:(NSString *)msg
,其实现如下:
- (void)setMessage:(NSString *)msg
[message release];
message = [msg retain];
// put your code to modify your UI here
这样,您将变量的赋值与视图的更新联系起来。
【讨论】:
我在屏幕两个视图控制器中没有设置器消息,我想知道如何发送变量或设置变量字符串,这样当我添加子视图时,我也可以在同时,可以显示消息...加载视图时。 so... 当前视图执行以下操作:实例化 ScreenTwoViewController *screen2 = [[ScreenTwoViewController alloc] init];等等等等 [self.addSubview:screen2];我还应该以某种方式发送一个字符串变量,这样我就可以在 screen2 内设置一条消息......所以它是动态的【参考方案3】:您可以为ScreenTwoViewController
创建一个新的初始化方法。例如,- (id) initWithMessage:(NSString *)message
。
要更新消息,只需创建一个 setter 方法 - (void)setMessage:(NSString *)newMessage
。
【讨论】:
BTW(mainViewController *)[[self.superview] variableName];
实际上是错误的。应该是[(mainViewController *)[self.superview] variableName];
以上是关于将变量发送到添加的子视图视图控制器的主要内容,如果未能解决你的问题,请参考以下文章