Можете ли вы жестко программировать IBActions и IBOutlets, а не перетаскивать их вручную в Интерфейсном Разработчике? - PullRequest
9 голосов
/ 30 марта 2010

Можно ли жестко кодировать IBAction s и IBOutlet s в коде вместо их перетаскивания в Interface Builder?

Ответы [ 2 ]

17 голосов
/ 30 марта 2010

Да, это возможно ...

образец кода

UIButton *btnDetail = [UIButton buttonWithType:UIButtonTypeRoundedRect] ;

        [btnDetail setFrame:CGRectMake(250.0f, 15.0f, 65.0f, 20.0f)] ;
        //btnDetail.backgroundColor = [UIColor grayColor];
        [btnDetail setTitle:@"Detail" forState:UIControlStateNormal];
        [btnDetail setTitleColor: [UIColor redColor] forState: UIControlStateNormal];
        [btnDetail.titleLabel setFont:[UIFont fontWithName:@"Verdana" size:12]];
        [btnDetail setBackgroundColor:[UIColor clearColor]];
        [btnDetail sizeThatFits:btnDetail.frame.size];
        [self.view addSubview:btnDetail];
//IBAction
        [btnDetail addTarget:self 
                   action:@selector(ShowSavingAccountDetail:)
         forControlEvents:UIControlEventTouchUpInside];

        [btnDetail setImage:[UIImage imageNamed:@"btn-detail.png"] forState:UIControlStateNormal];
15 голосов
/ 30 марта 2010

Концепция и единственная цель IBAction и IBOutlet - предоставить Интерфейсному Разработчику средства для соединения XIB с вашим кодом.

Если вы не хотите использовать Interface Builder с вашим кодом, вам не нужны IBAction или IBOutlet, они нужны вам ТОЛЬКО для использования объектов (кнопок, текстовых полей и т. Д.), Которые были созданы в вашем xib из ваших классов .

С учетом сказанного, ответ mihirpmehta - это правильный способ программно добавить элементы пользовательского интерфейса в ваше представление и добавить к ним действия.

...