ibaction崩溃tabbarcontroller应用程序
-
30-09-2019 - |
题
我有一个基于窗口的TABBARCONTROLLER应用程序,我正在尝试从其中一个Tabs(FirstViewController)介绍ModalView。该应用程序可以很好地构建,并且选项卡可以正常工作,但是单击“打开模态”按钮后,它会崩溃并给我:
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中的自定义视图控制器上是否设置了ModalViewController的类?那是我的问题。
其他提示
我想您忘了将OpenModalView方法放在 @interface
的 FirstViewController
.
@interface FirstViewController : UIViewController <ModalViewDelegate> {
}
- (IBAction) openModalView;
@end
不隶属于 StackOverflow