La alineación de UIBarButtonItem personalizada está desactivada con iOS7

Así que tengo el mismo problema que muchos otros están experimentando al crear un UIBarButtonItem con un UIButton como una vista personalizada.

Básicamente, el botón es de aproximadamente 10 píxeles a la izquierda o la derecha. Cuando uso un elemento BarButtonIt regular sin una vista personalizada, esto no sucede.

Esta publicación proporcionó una solución parcial:UIBarButton con vista personalizada

Aquí está mi código que he creado subclasificando UIButton (como se indica en la otra publicación)

    - (UIEdgeInsets)alignmentRectInsets {
    UIEdgeInsets insets;
    if ([self isLeftButton]) {
        insets = UIEdgeInsetsMake(0, 9.0f, 0, 0);
    }
    else { // IF ITS A RIGHT BUTTON
        insets = UIEdgeInsetsMake(0, 0, 0, 9.0f);
    }
    return insets;
}


- (BOOL)isLeftButton {
    return self.frame.origin.x < (self.superview.frame.size.width / 2);
}

Esto funciona muy bien, pero cuando vuelvo a colocar un controlador de vista desde el controlador de navegación en esta vista principal, el botón todavía está colocado incorrectamente durante aproximadamente .3 segundos, y luego encaja en el recuadro correcto.

Esta es una gran monstruosidad y no tengo idea de cómo evitar que se rompa de esa manera. ¿Alguna idea? ¡Gracias!

Respuestas a la pregunta(4)

Su respuesta a la pregunta