Не удается создать соединения IBAction в Xcode 5 Storyboard

Казалось бы, очень простая проблема, но она меня бесконечно расстраивает и тормозит прогресс. Когда я щелкаю и перетаскиваю из UIButton или UIStepper в контроллер представления, опция добавления IBAction соединений не отображается.

Контроллер представления называется BuyNowVC, и в моем BuyNowVC.h у меня есть:

@interface BuyNowVC : UIViewController {
    IBOutlet UIButton *buyButton;
    IBOutlet UIStepper *myStepper;
}

@property (nonatomic, retain) IBOutlet UIButton *buyButton;
@property (nonatomic, retain) IBOutlet UIStepper *myStepper;

- (IBAction)buttonPressed;
- (IBAction)stepperPressed;

И в BuyNowVC.m:

@synthesize buyButton;
@synthesize myStepper;

- (IBAction)buttonPressed {
    NSLog(@"Button pressed!");
}

- (IBAction)stepperPressed {
    NSLog(@"Stepper pressed!");
}

Я определенно перетаскиваю ctrl на сам View Controller, но единственные варианты, которые я получаю с UIButton и UIStepper, - это переход к действию: push, modal, custom. Никаких признаков buttonPressed или stepperPressed.

Изменить

Я также должен упомянуть, что это не корневой VC, и UIButton в настоящее время привязан к переходу к следующему контроллеру представления (так что я могу перемещаться по своему макету), но, похоже, это не имеет значения, если я его удалю.


person Sebastian    schedule 06.02.2014    source источник
comment
Попробуйте добавить отправителя: - (IBAction)buttonPressed : (id) отправитель   -  person ahmedalkaff    schedule 06.02.2014
comment
@ahmedalkaff, вам не нужен отправитель для разработки iOS.   -  person Peter Segerblom    schedule 06.02.2014
comment
Проверьте настройку пользовательского класса вашего viewController?   -  person Mike Pollard    schedule 06.02.2014
comment
Тип viewController, на который вы перетаскиваете, — BuyNowVC? Если это правильный тип, попробуйте перейти к инспектору соединений (крайний слева) кнопки и перетащите из одного из действий, обычно touchupinside. Если ничего не работает, перезапустите xcode.   -  person Peter Segerblom    schedule 06.02.2014


Ответы (3)


Во-первых, должно ли BuyNow.m быть BuyNowVC.m?

Во-вторых, если вы пытаетесь связать UIButton с IBAction в контроллере представления, и если это не работает, возможно, вы пропустили переименование "Custom Class " с именем контроллера представления, к которому вы пытаетесь подключить UIButton в раскадровке.

В-третьих, вы упомянули: ".... Action Segue: push, modal, custom. Никаких признаков buttonPressed или stepperPressed". Эта информация говорит мне, что вы пытаетесь control перетащить свой UIButton на другой контроллер представления, к которому вы пытаетесь привязать там IBAction - это невозможно.

Добавление снимка экрана:

введите здесь описание изображения

Пожалуйста, проверьте здесь, в раскадровке:

Вы изменили имя «Custom Class» для UIButton на собственное имя кнопки.

Пожалуйста, измените его обратно на UIButton в качестве имени для поля «Пользовательский класс».

См. снимок экрана:

Не делайте этого, как на картинке. Измените его обратно на UIButton. Как только вы это сделаете, вы увидите, что «Action Connection» снова машет вам «Привет» при control-перетаскивании к нему.

Шаги:

1.) Нажмите на UIButton на контроллере представления в раскадровке.

2.) Проверьте правую боковую панель (3-я вкладка слева) и измените поле «Пользовательский класс» обратно на UIButton.

введите здесь описание изображения

Так и должно быть:

введите здесь описание изображения

person Unheilig    schedule 06.02.2014
comment
Во-первых: извините, это была ошибка в вопросе - отредактировал. Второй: проверено, и пользовательский класс BuyNowVC. Третье: нет, я перетаскиваю Ctrl в собственный контроллер представления UIButton, и он дает мне эти параметры. - person Sebastian; 06.02.2014
comment
Вот как это выглядит для меня, если я перетащу Ctrl от UIButton в раскадровке до .h i.imgur.com/KyurmXC .png - person Sebastian; 06.02.2014
comment
@Себастьян Удовольствие. Я тоже кое-чему научился. Твой образ дал мне подсказку. - person Unheilig; 06.02.2014

Я обычно так делаю

Как я обычно это делаю:

Пока раскадровка открыта,

1) Выберите средний значок («Помощник»)

2) Отмените выбор правой панели

3) Перетащите от кнопки к редактору ViewController, удерживая клавишу управления. Вы заметите небольшой соцентрический круг на линии 10.

person Anthony Kong    schedule 06.02.2014
comment
Попытка этого дает мне возможность выхода и подключения к выходу, но не действия. - person Sebastian; 06.02.2014
comment
То же самое, Себастьян. - person raja777m; 16.12.2015

Следуя другому ответу... перетаскивание в раздел кода @interface дает вам выход. Перетащите в раздел @implementation, чтобы получить действие.

Жаль не могу выложить скрин принт. Не хватает "репутации" :(

person Andy L.    schedule 06.02.2014