Frage

Ich bin mit Navigation mit einer benutzerdefinierten UIView Unterklasse, die meine Titleview wird. Ich möchte sicherstellen, das die volle zur Verfügung stehende Breite ist.

Logischer von meinem UIViewController des viewWillAppear:, sollte dies sein:

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

(Ich habe keinen richtigen Artikel hier haben.)

Das würde passen, dann für verschiedene mögliche Breiten des leftBarButtonItem. Der Haken ist, dass leftBarButtonItem ist nil, so leftBarButtonItem.width ist immer 0 (na ja, im Simulator sowieso).

backBarButtonItem ist auch gleich Null.

Was soll ich stattdessen tun?

War es hilfreich?

Lösung

ich gehackt dies, indem Sie folgendermaßen vorgehen:

    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;

Nasty aber es funktioniert

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top