我使用与成为我titleview的自定义UIView子类导航。我想确保这是完整的可用宽度。

在逻辑上从我UIViewControllerviewWillAppear:,这应该是:

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

(I没有权项此处。)

这将适应,那么,对于leftBarButtonItem的不同的可能的宽度。美中不足的是,leftBarButtonItemnil,所以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