UIBarButtonItem назначил действие в раскадровке, но не выполняет - PullRequest
0 голосов
/ 24 февраля 2012

Итак, у меня есть элемент UIBarButtonItem, который я помещаю на экран через раскадровку.Когда я нажимаю на него, экран должен перейти к другому виду.Это отлично работает.Я также хочу сделать некоторую обработку, когда пользователь нажимает на кнопку.Я связал кнопку с контроллером вида и в разделе «Отправленные действия» выбрал функцию, которую я хочу запустить при нажатии кнопки.

Обычно я бы использовал IB, чтобы выбрать Touch Up Inside и выбрать действиетам, но я не могу найти это нигде (это также первый раз, когда я использую UIBarButtonItem, так что я даже не знаю, является ли это вариант здесь или нет).связать UIBarButtonItem с функцией, чтобы, когда пользователь щелкает по ней, приложение запускало эту функцию и затем переходило к следующему представлению?Все это в XCode 4.2 ...

РЕДАКТИРОВАТЬ: немного опечатка там - означало UIBarButtonItem не UITabBarButton - был длинный день!

Ответы [ 4 ]

2 голосов
/ 31 декабря 2013

В качестве дополнения к предыдущему ответу от ascorbic

Если вы выберете View Controller, а затем откроете диалоговое окно соединений справа, вы увидите под разделом Received Actions запись для неприкрепленногоДействие.Если щелкнуть эту запись и перетащить ее на кнопку панели инструментов, соединение будет установлено.

2 голосов
/ 24 февраля 2012

Если кнопка всегда приведет вас к следующему представлению (то есть, нет проверки, которая должна быть выполнена в текущем представлении, прежде чем вы сможете выйти), вы можете вызвать свою функцию с prepareForSegue:. Используйте segue.identifier, чтобы определить, с какой проблемой вы имеете дело.

0 голосов
/ 06 декабря 2012

Вы можете связать элемент панели кнопок с IBAction в раскадровке. Хитрость заключается в том, чтобы связать действие приемника ViewController (не первого ответчика!) С элементом панели кнопок. Если вы нажмете Ctrl + перетащите действие от первого ответчика, IBAction останется несвязанным (вы можете проверить полый круг с помощью IBAction в файле .h вашего ViewController). Странно, я знаю, но у меня это сработало.

0 голосов
/ 24 февраля 2012
-(IBAction)switchToScoutingForm:(id) sender
{
    //run the needed code

    MySecondViewController *myVC = [self.storyboard instantiateViewControllerWithIdentifier:@"myVC"];

    [self setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    [self presentModalViewController:myVC animated:YES];
}

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

EDIT: замените MySecondViewController именем контроллера представления, который вы хотитепереход к.также обязательно импортируйте другой контроллер представления в ваш .h файл:

#import "MySecondViewController.h"
...