Я работаю по курсу CS193p Stanford iOS, и я почти закончил с Assignment 3, в котором я конвертирую графический калькулятор в универсальное приложение для iPad. Приложение рисует график, когда программа (например, «x + 3») вводится в калькулятор, а затем пользователь нажимает кнопку «График». На iPhone, я просто segued, когда была нажата кнопка Graph, но в IPad, у меня есть UISplitViewController, что я настроить целевое действие с помощью кнопки Graph:iOS Метод IBAction никогда не называется
- (IBAction)ipadGraphPressed:(UIButton *)sender {
if ([self splitViewGraphViewController]) {
[[self.splitViewController.viewControllers lastObject] setProgram:self.brain.program];
}
}
Это вызывает setProgram:
в GraphViewController, который затем вызывает setNeedsDisplay:
в GraphView и должен нарисовать график.
Для сравнения, вот метод Segue, который работает на iPhone:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
[segue.destinationViewController setProgram:self.brain.program];
}
Я очень уверен, что соединение устанавливается между кнопкой и способа его действия, но при запуске приложения, это действие метод никогда не вызывается при нажатии кнопки. Есть ли что-нибудь еще, чтобы проверить, чтобы метод вызывался?
Если метод действия не вызывается при нажатии кнопки, то так или иначе «IBAction» не привязан к кнопке правильно. Вы уверены, что вы подключили «IBAction» к событию «Прикоснуться внутрь» и что вы создаете свой контроллер представлений таким образом, чтобы обеспечить возможность подключения для вас во время создания экземпляра? – aroth
Я уверен, что событие Touch Up Inside подключено. Что касается настройки контроллера просмотра, я не уверен. IPhone segue работает, установив свойство программы GraphViewController, и поэтому я сделал то же самое в методе действий. Я предположил, что это сработает. – Paul
Сначала проверьте, что кнопка имеет действие, связанное с ipadGraphPressed. Затем добавьте NSLog (@ "% @", отправитель); внутри метода нажмите кнопку и посмотрите, работает ли кнопка. – Pochi