我是接口构建器的新手。
我想在界面构建器中设计一个视图 我知道我可以通过'loadNibNamed'加载视图。
现在,假设视图中有两个按钮(或两个敲击手势识别器),当触摸这些按钮时,需要触发某些功能。
如何将触摸连接到我调用的'loadNibNamed'的viewController的某些函数?
视图将是带有两个按钮(或点击手势识别器)的弹出视图(PopUp view)。
答案 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的新手,则有三个步骤。
在.h(标题)文件中添加方法名称,即
- (IBAction)someMethod:(id)sender;
保存修改后的.h文件。
打开Interface Builder。
打开我认为的工具菜单下的文件所有者窗口。
Cntrl +单击“文件所有者”窗口下的“文件所有者”选项。 应该出现一个黑色窗口,其下面有一堆接口选项。 someMethod
将该小黑圈(应出现蓝线)拖到您希望方法连接的按钮上。应该出现另一个菜单。选择一个合适的动作(如触摸或类似的东西)。重复第二个按钮。
在每个按钮的IB中,在属性(我相信)下的属性列表中为它们提供一个标记。如果需要“属性”窗口,请再次在“工具”菜单下查看。转到标记部分,为每个按钮指定不同的标记。 (1,2,3 ......等)。
在.m文件中实现该方法。确保您区分用户选择的按钮的操作,即if(sender.tag == 1){...} else if(sender.tag == 2){...}
保存并运行。
结束。