0

我正在尝试创建一个简单的应用程序,它使用主视图并在其中有一个较小的子视图。我需要在子视图中有按钮,但我无法让按钮工作的连接。我做了以下事情:

  • 创建一个新的基于 View 的项目,它给了我 ViewController.h & .m、MainStoryboard.storyboard 和 AppDelegate.h & .m。
  • 使用 NewFile - Objective-C 类创建子视图 - 然后将其命名为“subView1”并使其成为 UIViewController 的子类并选中 with xib 复选框。
  • 这给了我 subView1.h &.m 文件和 subView1.xib。
  • 然后我在 xib 中重新调整子视图的大小,方法是在属性检查器中将其大小设置为“FreeForm”,然后在大小检查器中指定宽度(到 280)和高度(到 300)。我还更改了背景颜色以将其与主视图区分开来。
  • 然后我将一个 UIButton 拖入 subView 并使用 touchupinside 将其作为 IBAction(我将其命名为“clickButton1”)连接到 subView1.h 文件。
  • 仅出于测试目的,我使用了一个简单的 NSLog 来检查我放置在 subView.m 文件中的按钮的功能,如下所示:

-(IBAction)clickButton1:(id)sender {

NSLog(@"成功了!");

}

  • 在 viewDidLoad 中的 ViewController.m 文件中,我添加了以下代码以将子视图添加到主视图:

subView1 *sv1 = [[subView1 alloc]init];

sv1.view.frame = CGRectMake(20,120,280,300);

[self.view addSubview: sv1.view];

这一切都很好,当我运行应用程序时,我得到主视图,子视图按预期显示。问题是当我单击位于子视图中的按钮时,它会崩溃并出现以下错误:

线程1:EXC_BAD_ACCESS(代码=1,地址=0xe00000008)

根据我的阅读,我相信这可能与我添加子视图的方式以及我使用 ARC 的事实有关。一旦添加了子视图,它就会自动释放,因此子视图中的所有按钮/连接等都会丢失。

所以我的两个问题是 1)我在这里错过了什么愚蠢的东西吗?有一个简单的解决方法吗?和 2) 这是创建使用带有按钮的子视图的应用程序的适当方法,还是有更好的方法?感谢任何花时间回答的人!

4

1 回答 1

0

我试图重申你所说的。

因此,您首先创建了一个基于视图的应用程序(选中“使用情节提要”复选框),然后在情节提要中放置了一个按钮。然后,您控制拖动按钮到"ViewController.h"文件。如果这是正确的,你应该可以把

NSLog(@"It Worked!");

在方法实现中(至少,可以这样做)

于 2013-07-04T00:54:58.183 回答