2012-03-08 2 views
2

У меня есть текстовое поле в ячейке tableview, и я хочу назначить пользовательскую клавиатуру ввода. Я могу заставить клавиатуру отобразиться, но похоже, что соответствующий класс контроллера не подключен. Когда я нажимаю любую кнопку, я получаю ошибку EXC_BAD_ACCESS или ошибку «непризнанный селектор».EXC_BAD_ACCESS Ошибка при переключении на ARC

Вот код, где я связать текстовое поле в Tableview клетки к пользовательской клавиатуре ввода

CustomNumberPadViewController *calcKeyboard = [[CustomNumberPadViewController alloc] initWithNibName:@"CustomNumberPadView" bundle:nil]; 
calcKeyboard.equationViewController = self; 
cell.variableValue.inputView = calcKeyboard.view; 

У меня есть методы действий, привязанные к кнопкам calkKeyboard, и при нажатии кнопки, эти методы не являются называемый. Я даже создавал метод «viewWillAppear», который также не вызывается, когда появляется клавиатура.

Я проверил класс цифровой клавиатуры и подключен к CustomNumberPadViewController, который содержит вышеупомянутые методы.

Вот код для моего CustomNumberPadViewController:

#import <UIKit/UIKit.h> 
#import "EquationViewController.h" 
@class EquationViewController; 


@interface CustomNumberPadViewController : UIViewController <UITextFieldDelegate>{ 
EquationViewController *equationViewController; 
} 

@property (nonatomic, strong) EquationViewController *equationViewController; 

-(IBAction)buttonPressed:(id)sender; 
-(IBAction)buttonDonePressed:(id)sender; 
-(IBAction)buttonDelPressed:(id)sender; 


@end 

И связано реализация (для краткости я вырезал внутренности методов действий и просто оставили свои отладочные логи):

#import "CustomNumberPadViewController.h" 
#import "VariableCellController.h" 

@implementation CustomNumberPadViewController 

@synthesize equationViewController; 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
     if (self) { 
    } 
    return self; 
} 

- (void)didReceiveMemoryWarning 
{ 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 

#pragma mark - View lifecycle 

-(void) viewWillAppear:(BOOL)animated 
{ 
    UIColor *backgroundPatern = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"calculatorBackground.png"]]; 
    self.view.backgroundColor = backgroundPatern; 
} 

- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 

#pragma mark - Action Methods 

-(IBAction)buttonPressed:(id)sender{ 
    NSLog(@"61-CNPVC");  
} 
-(IBAction)buttonDonePressed:(id)sender{ 
    NSLog(@"117-CNPVC"); 
} 
-(IBAction)buttonDelPressed:(id)sender{ 
    NSLog(@"125-CNPVC"); 
} 
@end 

ответ

2

Я думаю, вам нужно сохранить CustomNumberPadViewController, добавив его с addChildViewController или присваивая его свойству.

Попробуйте отладить его с помощью zombies enabled.

+0

Это произошло, я попытался сделать это раньше, но, должно быть, испортил какой-то синтаксис и перешел к другим идеям. Благодаря тонну. Забавно, что у меня не было этой проблемы, когда я не использовал ARC. Но я думаю, что у меня была утечка памяти ... – Jbryson

Смежные вопросы