我有两个屏幕,一个用于登录: 类名是LoginViewController。屏幕截图为
它包含两个文本字段:用户名和密码。
点击忘记密码:此屏幕打开此屏幕的类是ForgotPasswordViewController
点击DOB文本字段时,会出现一个日期选择器选择器,从中选择日期。现在,如果按下后退按钮,则会出现登录屏幕。一切都很好,直到现在。现在,如果我点击用户或密码文本字段,则应用程序崩溃将记录此日志
2013-11-13 13:55:53.582 mRx [4684:60b] *** - [ForgotPasswordViewController respondsToSelector:]:发送到解除分配的实例0x15d7b510的消息
我不知道造成这次崩溃的原因。请提出一些建议来处理它。我已经有2天了,但仍然没有找到解决方案。如果您需要任何其他相关信息,请发表评论。
错误跟踪的屏幕截图如下:
请帮忙
带来日期选择器的文本字段的代码是:
#pragma mark - TextField Delegate Methods
- (void)textFieldDidBeginEditing:(UITextField *)textField { self.txt_currentFocussedTextField = textField; [[AppDelegate sharedInstance] addToolbarForKeyboard:textField];
if (textField == self.txt_DOB) {
[textField resignFirstResponder];
_actionSheetPicker = [[ActionSheetDatePicker alloc] initWithTitle:@"" datePickerMode:UIDatePickerModeDate selectedDate:self.selectedDate minimumDate:Nil maximumDate:Nil target:self action:@selector(dateWasSelected:element:) origin:textField];
self.actionSheetPicker.hideCancel = NO;
[self.actionSheetPicker showActionSheetPicker];
}
}
.h文件中的代码是:
#import <UIKit/UIKit.h>
#import "AbstractActionSheetPicker.h"
@interface ForgotPasswordViewController : UIViewController<UITextFieldDelegate>
@property (strong,nonatomic) UITextField * txt_currentFocussedTextField;
@property (strong,nonatomic) IBOutlet UITextField *txt_username;
//@property (weak,nonatomic) IBOutlet UITextField *txt_lastname;
@property (strong,nonatomic) IBOutlet UITextField *txt_DOB;
@property (strong,nonatomic) IBOutlet UITextField *txt_phone;
@property (strong,nonatomic) IBOutlet UITextField * txt_zip;
@property (strong,nonatomic) IBOutlet UITextField * txt_newPassword;
@property (strong,nonatomic) IBOutlet UIButton *btn_save;
@property (strong,nonatomic) IBOutlet UIScrollView * scrollview;
@property (nonatomic, strong) AbstractActionSheetPicker *actionSheetPicker;
@property (nonatomic, retain) NSDate *selectedDate;
- (void)forgotPasswordRequest;
@end
答案 0 :(得分:0)
看起来你的ForgotPasswordViewController
正在观察一个NSNotification,也许是UIKeyboardWillShowNotification
,当你从导航堆栈中弹出时,你没有从NSNotificationCenter
中删除它作为观察者。
问题是通知中心尝试通知您已经解除分配的视图控制器。
在- (void)removeObserver:(id)observer name:(NSString *)aName object:(id)anObject
或viewDidDisappear:
中使用dealloc
。