Невозможно подключить UIButton к ViewController в XCode4 - PullRequest
1 голос
/ 18 сентября 2011

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

.h файл

@interface CalculatorViewController : UIViewController
{

    CalculatorBrain *brain;
    IBOutlet UILabel *label;

}

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

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

.m файл

#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

Однако я не получаю никаких опций. Есть идеи, что я делаю не так?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 19 сентября 2011
  • Убедитесь, что для владельца файла установлено значение CalculatorViewController
  • В IB нажмите кнопку, затем щелкните опцию справа (соединения, я думаю, это называется)
  • Найдите действие под названием touchUpInside. Перетащите из кружка рядом с этим к владельцу ваших файлов, после чего появятся два действия.
0 голосов
/ 03 декабря 2011

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

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

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

<dictionary class="NSMutableDictionary" key="flattenedProperties">
    <string key="-1.CustomClassName">xxxxxxViewController</string>
0 голосов
/ 18 сентября 2011

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

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

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

...