Pergunta

Eu estou usando navegação com uma subclasse UIView personalizado que torna a minha titleView. Eu quero garantir isso é a largura total disponível.

Logicamente de UIViewController do meu viewWillAppear:, este deve ser:

CGFloat width = self.width - self.navigationItem.leftBarButtonItem.width - someConstant;

(Eu não tenho um item certo aqui.)

Este seria adaptar, em seguida, para diferentes larguras possíveis do leftBarButtonItem. O problema é que leftBarButtonItem é nil, então leftBarButtonItem.width é sempre 0 (bem, no simulador de qualquer maneira).

backBarButtonItem também é nulo.

O que eu deveria estar fazendo em vez disso?

Foi útil?

Solução

Eu cortei isso fazendo o seguinte:

    int vcStackSize = [[self.navigationController viewControllers] count];
    WEViewController* previousController = [[self.navigationController viewControllers] objectAtIndex:vcStackSize - 2];

    NSString* previousTitle = [previousController title];

    UIFont* font = [UIFont boldSystemFontOfSize:12];


    lw = [previousTitle sizeWithFont:font].width + 26;

desagradável, mas ele funciona

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top