如何创建一个以视图为参数的objective-c方法?

时间:2012-02-07 15:40:45

标签: objective-c ios uiview

我有一些代码可以实例化很多东西。此代码需要添加到视图中。因此,我需要能够使用视图参数调用函数,然后将我的代码设置为方法体中的该视图。

我有什么选择呢?我读过你可以使用代表吗?但不确定如何。

3 个答案:

答案 0 :(得分:5)

- (void) aMethodWithView:(UIView *)theView{
    theView.setSomething = somethong;
}

答案 1 :(得分:2)

如果您想将UIView作为子视图添加到另一个视图,请执行以下操作:[view addSubview:subview]。如果要创建一个获取视图的方法,可以将其写为:

- (void)nameOfMethodThatYouWantToSendTheViewTo:(UIView *)view {

//do seomthing with the view

}

答案 2 :(得分:1)

所以,如果我理解正确的话,你想要创建一个视图并传递一些参数来初始化视图。

我认为您可以在视图控制器中创建自定义-initWithNibName(),如果必须在显示视图之前完成。所以它看起来像

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil withParametherA: (ClassA *)a andParameterB: (ClassB *)b andParameterC: (ClassC *)c
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
    // Custom initialization
    // Use value of a, b, c to do something
    }
    return self;


}

如果你想在不同的视图控制器之间传递值,请说你想要参数的视图是B,然后从A填充它。然后在B的控制器类中,你可以使你喜欢的字段成为属性,然后在A中,您可以创建B的控制器类,设置属性,然后填充视图。

如果你想使用委托,你可以设置A作为B的委托,所以在B中,你可以发送一条消息来获取你喜欢的参数值-ViewDidLoad()或你想要的任何方法。

希望这有帮助。