2012-07-16 13 views
5

W moim application:didFinishLauchginWithOptions: ustawiam domyślny wygląd moich kontrolek.Wygląd UIBarButtonItem Potrzebuję wyjątku

działa to doskonale dla mnie, ponieważ daje normalny UIBarButtonItems przejrzysty płaski wygląd. Jednak istnieje przycisk I, który jest wyświetlany od UIDocumentInteractionController po naciśnięciu "szybkiego wyglądu", który nie ma właściwego wyglądu.

enter image description here

wierzę, że jest to jedyny barbuttonitem mam to jest właśnie obraz. Czy istnieje sposób, w jaki mogę zmodyfikować ten przycisk, aby nadać mu pewien kontrast, więc nie wygląda tak brzydko? nawet oryginalne tło wygląda dobrze na tle mojego nawigacyjnego paska nawigacyjnego.

Odpowiedz

0

skończyło się na wdrażaniu

documentInteractionControllerWillBeginPreview, documentInteractionControllerDidEndPreview

W willBegin I zachowują prawo przycisku i odpowiedni zestaw navigationItem do zera. Robię tak, ponieważ w didEnd widok jest już pokazany, więc resetowanie wyglądu nie działa do momentu dodania go.

- (void)documentInteractionControllerWillBeginPreview:(UIDocumentInteractionController *)controller 
{ 
    [[UIBarButtonItem appearance] setBackgroundImage:nil forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
    [[UIBarButtonItem appearance] setBackgroundImage:nil forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault]; 
    [[UIBarButtonItem appearance] setBackgroundImage:nil forState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; 

    self.rightButton = self.navigationItem.rightBarButtonItem; 
    self.navigationItem.rightBarButtonItem = nil; 
} 

- (void)documentInteractionControllerDidEndPreview:(UIDocumentInteractionController *)controller 
{ 
    UIImage *transparentImage = [UIImage imageNamed:@"transparent.png"]; 
    [[UIBarButtonItem appearance] setBackgroundImage:transparentImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
    [[UIBarButtonItem appearance] setBackgroundImage:transparentImage forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault]; 
    [[UIBarButtonItem appearance] setBackgroundImage:transparentImage forState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; 

    self.navigationItem.rightBarButtonItem = self.rightButton; 
} 

Nie jest idealny, ale jest znacznie lepszy niż był. Jeśli ktokolwiek może dowiedzieć się, jak sobie poradzić z przedstawionym kontrolerem rightBarButtonItem, przyjmę twoją odpowiedź.