Не удается подключить UIButton к ViewController в XCode4

Я изучаю iPhone Dev и что-то застрял. Я пишу простую программу-калькулятор, но когда я пытаюсь подключить одну из кнопок на калькуляторе к владельцу файла в Interface Builder, я не получаю никаких вариантов:

.h файл

@interface CalculatorViewController : UIViewController
{

    CalculatorBrain *brain;
    IBOutlet UILabel *label;

}

- (IBAction)digitPressed:(UIButton *)sender;

- (IBAction)operandPressed:(UIButton *)sender;
@end

.м файл

#import "CalculatorViewController.h"

@implementation CalculatorViewController

- (IBAction)digitPressed:(UIButton *)sender
{
    //not implemented yet
}

- (IBAction)operandPressed:(UIButton *)sender
{
    //not implemented yet
}
@end

Насколько я понимаю, когда я работаю со своим CalculatorViewController.xib в конструкторе интерфейса, если я пытаюсь подключить кнопку к владельцу файла, у меня должно быть два варианта: 1. digitPressed 2. operandPressed

Тем не менее, я не получаю никаких вариантов. Любые идеи, что я делаю неправильно?

Спасибо.


person Community    schedule 18.09.2011    source источник
comment
попробуйте изменить (UIButton *)sender только на (id)sender   -  person Eimantas    schedule 18.09.2011


Ответы (3)


  • Убедитесь, что владельцем файла является CalculatorViewController.
  • В IB нажмите кнопку, затем нажмите опцию справа (подключения, кажется, она называется)
  • Найдите действие под названием touchUpInside. Перетащите из круга рядом с этим владельцем файлов, после чего появятся два действия.
person jrturton    schedule 18.09.2011
comment
Вы не можете перейти непосредственно с кнопки, вам нужно указать, какой тип сенсорного события связан с действием. - Да, вы можете, по умолчанию touchUpInside. - person Jim; 19.09.2011
comment
Извините, вы уже сказали, что это v4. Можно подробнее, чем не работает? - person jrturton; 20.09.2011
comment
Я не могу перетащить выход со своей кнопки на владельца файла. - person ; 24.09.2011
comment
Итак, линия перетаскивания не появляется, или вы не можете сбросить ее конец на владельца файлов? - person jrturton; 24.09.2011
comment
@jrturton спасибо за ответ! - person neocanable; 07.04.2013

Вы тащите от кнопки к владельцу или наоборот?

Если вы хотите сослаться на объект в пера из кода, вы определяете IBOutlet и перетаскиваете от владельца к объекту.

Если вы хотите сослаться на код из объекта в файле пера, то вы определяете IBAction и перетаскиваете от объекта к владельцу.

person Jim    schedule 18.09.2011
comment
Я перетаскиваю от кнопки к владельцу файла - person ; 20.09.2011

Я столкнулся с подобной проблемой. Проблема была в том, что я переименовал ViewController. Файл XIB содержит имя контроллера представления внутри него.

когда оно не соответствует фактическому имени построителя интерфейса класса UI View Controller, это будет выглядеть смешно.

Чтобы исправить это, откройте файл XIB как исходный код (щелкните его правой кнопкой мыши и используйте «Открыть как исходный код»), это файл XML. найдите имя старого контроллера, а затем измените его на правильное имя. Я нашел его в XML в разделе:

<dictionary class="NSMutableDictionary" key="flattenedProperties">
    <string key="-1.CustomClassName">xxxxxxViewController</string>
person Asher    schedule 02.12.2011