iphone实例/类方法问题

时间:2010-03-19 02:36:49

标签: iphone uiview uibutton

好的,所以我有一个viewController方法,它有一些用界面构建器创建的元素,有些我自己编码。

我在IB中创建了一个视图...让我们称之为viewOne。我创建了一个循环来创建按钮(通过代码)并将它们放在一个单独的视图(viewTwo)上。这是在类方法中完成的。但是,我希望每次单击其中一个按钮时打开我所看到的视图。所以我做了:

[button addTarget:self action:@selector(woogoo:)
             forControlEvents:UIControlEventTouchUpInside];

woogoo课程做了以下事情:

+(void) woogoo:(id)sender { 
    //back button
    [self.view addSubview:viewOne]
}

但是,单击按钮时程序崩溃。我确实尝试将woogoo作为实例方法,但在这种情况下它也会崩溃。我想要做的就是在单击按钮时显示viewOne。有什么想法我可以做什么?

3 个答案:

答案 0 :(得分:0)

相反,为什么不将界面构建器中的IBAction连接到按钮,然后你可以只放你的[self.view addSubview:viewOne];进入IBAction方法。

PS。你在[self.view addSubview:viewOne]

之后错过了一个分号

干杯

答案 1 :(得分:0)

没有足够的信息,但是当你在woogoo时,我猜想“viewOne”的内容有问题。在addSubview之前添加这一行,看看你在控制台上得到了什么:

NSLog("woogoo: %@", viewOne);

您应该看到类似的内容,它与您为viewOne创建的视图和框架类型相匹配。如果你看到(null)或其他东西,请检查viewOne的设置方式。

<UIView: 0x4519b70; frame = (10 1; 300 43); layer = <CALayer: 0x4519540>>

也许您可以发布有关如何/何时创建/初始化viewOne的更多信息。

答案 2 :(得分:0)

+woogoo:中,您调用self.view。由于它是一个类方法,self也是一个类,因此+view也必须是一个类方法。你有没有把它作为一种课程方法?

如果没有,则需要使-woogoo:成为实例方法,并且还需要调用-addTarget:…实例方法的代码,然后向上传播。