Приложение Ibaction сбоит приложение TabbarController
-
30-09-2019 - |
Вопрос
У меня есть окно на основе окна приложение TabBarController, и я пытаюсь представить ModalView с одного из вкладок (FirstViewController). Приложение строит просто отлично, а вкладки работают, но при нажатии кнопки «Открыть модальный вид» вылетают и дает мне:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController openModalView]: unrecognized selector sent to instance 0x5d1e930'
ОБНОВИТЬ: Я обнаружил, что проблема не представляет модальный вид, но сбой происходит с любыми вызовами Ibaction. Что может быть причиной этого?
Firstviewcontroller.h:
#import <UIKit/UIKit.h>
#import "ModalViewController.h"
@interface FirstViewController : UIViewController <ModalViewDelegate> {}
@end
Firstviewcontroller.m:
#import "FirstViewController.h"
@implementation FirstViewController
- (IBAction) openModalView {
ModalViewController *modalView=[[ModalViewController alloc] init];
modalView.modalDelegate=self;
[self presentModalViewController:modalView animated:YES];
[modalView release];
}
#pragma mark -
#pragma mark ModalViewDelegate
- (void) didHitCancel {
[self dismissModalViewControllerAnimated:YES];
}
#pragma mark -
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (void)viewDidUnload {
[super viewDidUnload];
}
- (void)dealloc {
[super dealloc];
}
@end
Modalviewcontroller.h:
#import <UIKit/UIKit.h>
@protocol ModalViewDelegate <NSObject>
- (void)didHitCancel;
@end
@interface ModalViewController : UIViewController {
id modalDelegate;
}
@property (nonatomic, assign) id<ModalViewDelegate> modalDelegate;
- (IBAction) cancel;
@end
Modalviewcontroller.m:
#import "ModalViewController.h"
@implementation ModalViewController
@synthesize modalDelegate;
- (IBAction) cancel {
[self.modalDelegate didHitCancel];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (void)viewDidUnload {
[super viewDidUnload];
}
- (void)dealloc {
[super dealloc];
}
@end
Я знаю, что это много кода, но я хотел убедиться, что кто-то может найти проблему.
Заранее спасибо!
Решение
У вас есть класс на вашем пользовательском контроллере просмотра в IB Set в ModalViewController? Это была моя проблема.
Другие советы
Я думаю, что вы забыли поставить метод OpenModalView в @interface
из FirstViewController
.
@interface FirstViewController : UIViewController <ModalViewDelegate> {
}
- (IBAction) openModalView;
@end