Вопрос

Я использую навигацию с пользовательским UIView подкласс, который становится моим titleView.Я хочу убедиться, что это полная доступная ширина.

Логично из моего UIViewController's viewWillAppear:, это должно быть:

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

(У меня здесь нет подходящего товара.)

Таким образом, это будет адаптироваться к разной возможной ширине leftBarButtonItem.Загвоздка в том, что leftBarButtonItem является nil, так leftBarButtonItem.width всегда 0 (ну, во всяком случае, в симуляторе).

backBarButtonItem также равен нулю.

Что мне следует делать вместо этого?

Это было полезно?

Решение

Я взломал это, выполнив следующие действия:

    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;

Противно, но это работает

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top