当完成按钮应用程序的点击崩溃并给出程序收到信号SIGABRT的消息时。在解除来自UINavigation Controller的modalviewcontroller的问题完成按钮
在ModalViewController.h委派协议和方法
@protocol ModalViewDelegate <NSObject>
-(void) dismissModalView:(UIViewController *) viewController;
@end
@interface Infoviewcontroller : UIViewController <ModalViewDelegate>
{
id<ModalViewDelegate> dismissDelegate;
}
@property (nonatomic, retain) id<ModalViewDelegate> dismissDelegate;
@end
在modalviewcontroller。米文件
@synthesize dismissDelegate;
-(void) dismissModalView:(UIViewController *) viewController;
{
[self dismissModalViewControllerAnimated:YES];
}
@end
在完成按钮定义
UIButton* backButton = [UIButton buttonWithType:101];
[backButton addTarget:self action:@selector(dismissView:) forControlEvents:UIControlEventTouchUpInside];
[backButton setTitle:@"Done" forState:UIControlStateNormal];
// create button item
UIBarButtonItem* backItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
// add the button to navigation bar
self.navigationItem.leftBarButtonItem = backItem;
[backItem release];
-(void) dismissView: (id)sender
{
[UIViewController dismissDelegate];
}
当完成按钮的应用程序崩溃的点击次数和给出节目接收信号SIGABRT消息。所以我认为我做错了dismissView完成按钮的方法,这就是为什么它给出的消息,UIViewController dismissDelegate无法识别的选择器
帮助将不胜感激。
感谢
非常感谢您花时间详细解释。 – user1120133 2012-01-15 20:54:35
作为进一步的评论,请注意iOS5.0之前的模态视图控制器没有'presentationViewController',并且不会对这个选择器做出响应。在iOS5.0中,Apple也将'parentViewController'的返回值(!)更改为'nil'。 – SK9 2012-01-16 22:10:02