使用界面构建器设计视图

时间:2012-08-24 13:28:14

标签: iphone ios view interface-builder

我是接口构建器的新手。

我想在界面构建器中设计一个视图 我知道我可以通过'loadNibNamed'加载视图。

现在,假设视图中有两个按钮(或两个敲击手势识别器),当触摸这些按钮时,需要触发某些功能。
如何将触摸连接到我调用的'loadNibNamed'的viewController的某些函数?

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

2 个答案:

答案 0 :(得分:0)

您需要从界面构建器对象(按钮)到您的班级设置插座。

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

一旦你这样做,添加选择器:

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

forControlEvents:UIControlEventTouchUpInside];

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

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

那里应该有很多教程:) - 顺便说一句,你考虑升级你的xcode和使用故事板吗?

- 编辑: -

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

在此处详细了解选择器:@selector and other class (Objective-C)

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

Can we pass a parameter to view did load or view will appear of other class from a class

答案 1 :(得分:0)

如果您是IB的新手,则有三个步骤。

  1. 在.h(标题)文件中添加方法名称,即

    - (IBAction)someMethod:(id)sender;

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

  3. 打开Interface Builder。

  4. 打开我认为的工具菜单下的文件所有者窗口。

  5. Cntrl +单击“文件所有者”窗口下的“文件所有者”选项。 应该出现一个黑色窗口,其下面有一堆接口选项。 someMethod

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

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

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

  10. 保存并运行。

    结束。