xcode viewDidLoad

时间:2012-03-17 21:54:04

标签: xcode uibutton viewdidload

我用目标C弄湿了脚。并且以为我会玩iphone开发。 我有一个Page Controller.h和.m

在我的实现文件中,我在viewDidLoad方法中抛出了一个UIButton。

- (void)viewDidLoad
{
    [super viewDidLoad];

    // content that loads in view
    UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    myButton.frame = CGRectMake(10, 160, 300, 44); 
    [myButton setTitle:@"Press Me!" forState:UIControlStateNormal];
    myButton.titleLabel.font = [UIFont systemFontOfSize:14];

    // add to a view
    [self.view addSubview:myButton];


}

到目前为止它显得很好。这让我问起loadView与viewDidLoad之间的区别。

此外,我想在按下按钮时运行我自己的功能,但是我经常从xcode获得可执行错误。

以下是我在上面的代码中插入的内容:

- (void)viewDidLoad
{
    [super viewDidLoad];

    // content that loads in view
    UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    myButton.frame = CGRectMake(10, 160, 300, 44); 
    [myButton setTitle:@"Press Me!" forState:UIControlStateNormal];
    myButton.titleLabel.font = [UIFont systemFontOfSize:14];

    //added this
    [myButton addTarget:self action:@selector(runClick) forControlEvents:UIControlEventTouchUpInside];


    // add to a view
    [self.view addSubview:myButton];


}

-(void)runClick{

    NSLog(@"does this work?");

}

对任何人来说,有什么不合适的地方吗?

另外,在PageController.h中我添加了: - (void)runClick;

这是我遇到的错误:

2012-03-17 16:04:30.077 Blah [510:207] - [__ NSCFString runClick]:无法识别的选择器发送到实例0x6a0b4f0

3 个答案:

答案 0 :(得分:1)

关于loadView和viewDidLoad之间的区别:

  • 根据Apple的说法,控制器(不是你!)在请求视图时调用此方法并且它是零。因此,它将创建并加载视图。
  • 您可以覆盖loadView以创建自己的视图(如果您没有该控制器的笔尖)
  • 如果要向带有nib文件的视图控制器创建的视图添加内容,请在viewDidLoad上执行此操作,并在viewDidUnload上将其删除。

关于错误,您能提供更多信息吗?你在调试吗?崩溃的线是什么?

答案 1 :(得分:1)

您是否在.h文件中声明了-(void)runClick? (显而易见的问题)。

此外,如果您想要访问控件的属性(例如,如果它是滑块等),您需要添加发件人位:

-(void)runClick (id)sender

答案 2 :(得分:0)

我相信你需要在runClick之后添加一个冒号,如下所示:

action:@selector(runClick:)