0

我是界面生成器的新手。

我想在界面生成器中设计一个视图。
我知道我可以通过“loadNibNamed”加载视图。

现在,假设视图中有两个按钮(或两个点击手势识别器),当这些按钮被触摸时,一些功能需要触发。
如何连接(?)触摸到我称之为“loadNibNamed”的viewController的某些功能?

该视图将是一个带有两个按钮(或点击手势识别器)的弹出视图(PopUp 视图)。

4

2 回答 2

0

您需要设置从界面构建器对象(按钮)到您的类的出口。

为此,您需要将调用“loadNibNamed”的类作为委托类。然后合成按钮,使其成为一个属性。

完成后添加选择器:

 [button addTarget:self action:@selector(buttonPressed)

forControlEvents:UIControlEventTouchUpInside];

更好的方法是为该特定视图编写一个新类。然后,如果您想在名为“loadNibNamed”的类中捕获事件,您可以将目标设置为其他内容:

[button addTarget:(UIMyClass)sender action:@selector(buttonPressed)
   forControlEvents:UIControlEventTouchUpInside];

那里应该有很多教程:) - 顺便说一句,您是否考虑过升级您的 xcode 并使用故事板?

- 编辑: -

出现问题是因为您将编码与界面构建混合在一起。我认为您仍然需要为您的新视图创建一个视图控制器类,但您可以将选择器的目标更改为调用类。

在此处查看有关选择器的更多信息:@selector 和其他类(Objective-C)

这里有一个关于以编程方式将数据推送到新视图的类似问题:

我们可以传递一个参数来查看是否加载或视图将出现在一个类中的其他类

于 2012-08-24T13:33:42.217 回答
0

如果您是 IB 新手,则需要三个步骤。

  1. 在您的 .h(头文件)文件中添加方法名称,即

    -(IBAction)som​​eMethod:(id) 发件人;

  2. 保存修改后的 .h 文件。

  3. 打开界面生成器。

  4. 在我相信的工具菜单下打开文件所有者窗口。

  5. Cntrl+单击文件所有者窗口下的文件所有者选项。应该会出现一个黑色窗口,下面有一堆界面选项。someMethod 旁边应该会出现一个黑色的小圆圈

  6. 将那个黑色小圆圈(应该出现一条蓝线)拖到您希望方法连接到的按钮上。应该会出现另一个菜单。选择一个适当的动作(比如触摸或类似的东西)。重复第二个按钮。

  7. 在 IB 中为每个按钮在 Properties 下的属性列表中给他们一个标签(我相信)。如果您需要“属性”窗口,请再次查看“工具”菜单。转到标签部分并为每个按钮指定一个不同的标签。(1、2、3 ...等)。

  8. 实现 .m 文件中的方法。确保区分用户选择哪个按钮的操作,即 if (sender.tag == 1) {...} else if (sender.tag == 2) {...}

保存并运行。

结束。

于 2012-08-24T20:04:59.043 回答