문제

사용자 정의와 함께 내비게이션을 사용하고 있습니다 UIView 내 타이틀 뷰가되는 서브 클래스. 나는 이것이 가용 너비를 완전히 보장하고 싶습니다.

논리적으로 내 UIViewController'에스 viewWillAppear:, 이것은 다음과 같아야합니다.

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

(여기에 올바른 항목이 없습니다.)

그러면 이것은 다른 가능한 폭에 적응할 것입니다. leftBarButtonItem. 캐치는 그게 다 leftBarButtonItem ~이다 nil, 그래서 leftBarButtonItem.width 항상 0입니다 (어쨌든 시뮬레이터에서).

backBarButtonItem 또한 nil입니다.

대신 무엇을해야합니까?

도움이 되었습니까?

해결책

나는 다음을 수행함으로써 이것을 해킹했다.

    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