UIBarButtonItem, ссылающийся на настраиваемое представление для последующего редактирования

Надеюсь, это простой вопрос, у меня есть UIBarButtonItem, который я инициализировал с помощью UILabel в качестве настраиваемого представления, кнопка находится внутри панели инструментов. Что я хочу сделать, так это иметь возможность изменить текст из метки, которая находится внутри UIBarButtonItem, вот мой код:

    NSDate *lastUpdateDate = [AWSyncEntity getLastUpdatedDateByEntityName:@"Patient" inManagedObjectContext:self.managedObjectContext]; 

    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];//liberar
    [dateFormat setDateFormat:@"MM/dd/yyyy hh:mm a"];

    UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 180, 44.01)]; //liberar
    myLabel.font = [UIFont boldSystemFontOfSize:10];
    myLabel.textColor = [UIColor whiteColor];
    myLabel.backgroundColor = [UIColor clearColor];
    myLabel.text = [NSString stringWithFormat:@"Actualizado: %@", [dateFormat stringFromDate:lastUpdateDate]];

    UIBarButtonItem *btn2 = [[UIBarButtonItem alloc] initWithCustomView:myLabel]; //liberar    
    UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; //liberar        
    self.toolbarItems = [NSArray arrayWithObjects:flexibleSpace,btn2, flexibleSpace, nil];
    [self.navigationController setToolbarHidden:NO animated:YES];

    UIBarButtonItem *mybtn = (UIBarButtonItem *)[self.toolbarItems objectAtIndex:2];    
    //I was thinking this would be possible...
    //UILabel *mylbl = (UILabel *) [mybtn view];

    [flexibleSpace release];
    [btn2 release];
    [myLabel release];
    [dateFormat release];

Я понятия не имею, как снова получить ссылку на внутренний вид кнопки, есть какие-то подсказки? Я думал о том, чтобы сделать что-то вроде этого: (но это не работает).

    //I was thinking this would be possible...
    //UILabel *mylbl = (UILabel *) [mybtn view];

person user743737    schedule 23.09.2011    source источник


Ответы (2)


Метка - это customView кнопки панели,

UILabel *mylbl = (UILabel *)[mybtn customView];
person EmptyStack    schedule 23.09.2011

UILabel * myLbl = (UILabel *) [mybtn customView];

это должно сработать, но я его не тестировал.

person iOS developer    schedule 23.09.2011
comment
Спасибо, я знал, что это просто, но я не смог его найти, спасибо, хотя он работает не так, как я ожидал. Причина, по которой я хочу ссылаться на метку, заключается в обновлении ее содержимого, я хочу отображать метку времени на панели инструментов и обновлять ее несколько раз, но выполнение этого способа, который я изначально опубликовал, не обновляет текст метки, единственный другой способ, которым я могу подумайте о том, чтобы создать новую кнопку и снова назначить ее панели инструментов с новой меткой времени, можете ли вы придумать лучший способ? - person user743737; 24.09.2011
comment
Извините, не могу придумать лучшего способа (я сам новичок, кодил всего пару месяцев), но если я помог, нажмите зеленую галочку, чтобы принять мой ответ! - person iOS developer; 24.09.2011