xcode viewDidLoad - PullRequest
       28

xcode viewDidLoad

0 голосов
/ 18 марта 2012

Я промочил ноги объективом-C.И думал, что поиграю с разработкой для iphone.У меня есть Page Controller.h и .m

Внутри моего файла реализации я бросил UIButton внутри метода viewDidLoad.

- (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 ]

1 голос
/ 18 марта 2012

Вы объявили -(void)runClick в своем файле .h? (очевидный вопрос).

Кроме того, если вы хотите получить доступ к свойствам элемента управления (например, если это слайдер и т. Д.), Вам нужно добавить бит отправителя:

-(void)runClick (id)sender

1 голос
/ 18 марта 2012

О разнице между loadView и viewDidLoad:

  • Согласно Apple, контроллер (не вы!) Вызывает этот метод, когда запрашивается его представление, и оно равно nil.Итак, он создаст и загрузит представление.
  • Вы можете переопределить loadView, чтобы создать свой собственный просмотр (если у вас нет кончика для этого контроллера)
  • Если вы хотите что-то добавитьдля представления, созданного контроллером представления с файлом пера, сделайте это на viewDidLoad и удалите его на viewDidUnload.

Об ошибке, можете ли вы предоставить больше информации?Вы отлаживаете?По какой линии он падает?

0 голосов
/ 06 июля 2012

Я полагаю, что вам нужно добавить двоеточие после запуска. Кликните как:

action:@selector(runClick:) 
...