target-c: метод textFieldShouldBeginEditing игнорирует свойства класса - PullRequest
0 голосов
/ 23 ноября 2011


У меня есть контроллер представления, который имеет UITextField в элементе навигации. Этот контроллер представления также является делегатом для поля uitext и поэтому реализует -(BOOL)textFieldShouldBeginEditing:(UITextField *)textField.
Но внутри этого метода есть небольшая проблема. Когда я хочу использовать какие-либо глобальные свойства для этого класса, все они равны нулю, у меня это выглядит так:

- (id) initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];
    if(self){
        FirstViewController *lvc = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:nil];
        SecondViewController *mvc = [[SecondViewController alloc] initWithNibName:@"SecondView" bundle:nil];
        ThirdViewController *lsc = [[ThirdViewController alloc] initWithNibName:@"ThirdView" bundle:nil];
        FourthViewController *fvc = [[FourthViewController alloc] initWithNibName:@"FourthView" bundle:nil];
        FifthViewController *svc = [[FifthViewController alloc] initWithNibName:@"FifthView" bundle:nil];

        viewControllers = [[NSArray alloc] initWithObjects:lvc, mvc, lsc, fvc, svc, nil];
        lastIndex = 0;

        isLogged = NO;

        [lvc release]; [mvc release]; [lsc release]; [fvc release]; [svc release];
    }
    return self;
}

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
    SearchView *searchView = [[SearchView alloc] initWithNibName:@"SearchView" bundle:nil andTextField:textField];
    // I need to set up delegate here
    // [searchView setDelegate:[viewControllers objectAtIndex:0]];
    // but viewControllers is nil in here
    AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
    [delegate.navigationController pushViewController:searchView animated:YES];
    delegate = nil;
    [searchView release];
    return NO;
}

Как объяснено в коде, массив viewControllers равен nil в методе textFieldShouldBeginEditing, и поэтому я не могу установить делегат, где мне нужно ... Почему свойства там отсутствуют? Можно ли это как-нибудь исправить?
Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...