我是界面生成器的新手。
我想在界面生成器中设计一个视图。
我知道我可以通过“loadNibNamed”加载视图。
现在,假设视图中有两个按钮(或两个点击手势识别器),当这些按钮被触摸时,一些功能需要触发。
如何连接(?)触摸到我称之为“loadNibNamed”的viewController的某些功能?
该视图将是一个带有两个按钮(或点击手势识别器)的弹出视图(PopUp 视图)。
我是界面生成器的新手。
我想在界面生成器中设计一个视图。
我知道我可以通过“loadNibNamed”加载视图。
现在,假设视图中有两个按钮(或两个点击手势识别器),当这些按钮被触摸时,一些功能需要触发。
如何连接(?)触摸到我称之为“loadNibNamed”的viewController的某些功能?
该视图将是一个带有两个按钮(或点击手势识别器)的弹出视图(PopUp 视图)。
您需要设置从界面构建器对象(按钮)到您的类的出口。
为此,您需要将调用“loadNibNamed”的类作为委托类。然后合成按钮,使其成为一个属性。
完成后添加选择器:
[button addTarget:self action:@selector(buttonPressed)
forControlEvents:UIControlEventTouchUpInside];
更好的方法是为该特定视图编写一个新类。然后,如果您想在名为“loadNibNamed”的类中捕获事件,您可以将目标设置为其他内容:
[button addTarget:(UIMyClass)sender action:@selector(buttonPressed)
forControlEvents:UIControlEventTouchUpInside];
那里应该有很多教程:) - 顺便说一句,您是否考虑过升级您的 xcode 并使用故事板?
- 编辑: -
出现问题是因为您将编码与界面构建混合在一起。我认为您仍然需要为您的新视图创建一个视图控制器类,但您可以将选择器的目标更改为调用类。
在此处查看有关选择器的更多信息:@selector 和其他类(Objective-C)
这里有一个关于以编程方式将数据推送到新视图的类似问题:
如果您是 IB 新手,则需要三个步骤。
在您的 .h(头文件)文件中添加方法名称,即
-(IBAction)someMethod:(id) 发件人;
保存修改后的 .h 文件。
打开界面生成器。
在我相信的工具菜单下打开文件所有者窗口。
Cntrl+单击文件所有者窗口下的文件所有者选项。应该会出现一个黑色窗口,下面有一堆界面选项。someMethod 旁边应该会出现一个黑色的小圆圈
将那个黑色小圆圈(应该出现一条蓝线)拖到您希望方法连接到的按钮上。应该会出现另一个菜单。选择一个适当的动作(比如触摸或类似的东西)。重复第二个按钮。
在 IB 中为每个按钮在 Properties 下的属性列表中给他们一个标签(我相信)。如果您需要“属性”窗口,请再次查看“工具”菜单。转到标签部分并为每个按钮指定一个不同的标签。(1、2、3 ...等)。
实现 .m 文件中的方法。确保区分用户选择哪个按钮的操作,即 if (sender.tag == 1) {...} else if (sender.tag == 2) {...}
保存并运行。
结束。