从另一个UIView访问UIView作为成员变量

时间:2009-03-28 11:27:27

标签: iphone objective-c

我对iphone有三种不同的看法。我成功地在不同的视图之间切换,但我想在第二个视图的ViewDidLoad方法中访问第一个视图的变量,但我无法得到它,所以plz帮助我。

3 个答案:

答案 0 :(得分:1)

您需要引用第二个视图的第一个视图。因此,当您实例化第二个视图时,请实现一条消息,该消息将接收第一个视图并存储对它的引用。

让我指出,最好使用 ViewController 模式来协调从一个视图流向另一个视图的数据和行为。

答案 1 :(得分:1)

有两个UIView的子类声明如下:

@interface ViewOne : UIView {
    NSString *someVar;
}

@property (nonatomic, copy) NSString *someVar;

@end

@interface ViewTwo : UIView {
    NSString *referenceToSomeVar;
}

@property (nonatomic, retain) NSString *referenceToSomeVar;

@end

您可以在第一个视图

中引用“someVar”变量
ViewOne *view1 = [[ViewOne alloc] init];
view1.someVar = @"This is the original variable";

ViewOne *view2 = [[ViewOne alloc] init];
view2.referenceToSomeVar = view1.someVar;

答案 2 :(得分:0)

我想在上面发布的代码中添加一些东西。想象一下,你想使用ViewOne中的变量,将它分配给ViewTwo中的第二个变量。

@interface ViewOne : UIView {
BOO someVar;
}

@property (readwrite) someVar;

@end

@interface ViewTwo : UIView {
BOO referenceToSomeVar;
}

@property (readwrite) BOO referenceToSomeVar;

@end

所以你必须放入ViewOne .m

 ViewOne *view1 = [[ViewOne alloc] init];
 view1.someVar = TRUE;

在SecondView .m

 referenceToSomeVar = view1.someVar;