2009-08-20 13 views

Odpowiedz

65

Information Kod Przycisk:

UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight]; 
    [infoButton addTarget:self action:@selector(infoButtonAction) forControlEvents:UIControlEventTouchUpInside]; 
    UIBarButtonItem *modalButton = [[UIBarButtonItem alloc] initWithCustomView:infoButton]; 
    [self.navigationItem setLeftBarButtonItem:modalButton animated:YES]; 
    [modalButton release]; 

Powyższy kod wywołuje metodę - (void) infoButtonAction. Dodaj to do wszystkich kontrolerów ViewController lub po prostu utwórz jeden .nib i użyj go dla wszystkich swoich widoków.

+0

Idealny. Mam dwa kontrolery widoku. Korzeń i szczegół. Dodałem ten kod do obu. Zmieniłem od lewej do prawej. Dodałem także: - (void) infoButtonAction { \t NSLog (@ "Informacje"); } Działa dobrze. Każdy z moich kontrolerów widoku ma już swoje własne pliki XIB. Kiedy powiedziałeś "użyj tej stalówki dla wszystkich swoich poglądów", co masz na myśli? Chciałbym mieć prosty widok z informacjami statycznymi. Przepraszamy za pytanie o newb. Jaki jest najprostszy sposób to zrobić? – PrinceOfMaine

+0

W jaki sposób sformatować komentarz, aby blok kodu był poprawnie wyświetlany jako blok kodu. – PrinceOfMaine

+0

Myślałem, że ponieważ potrzebujesz tego viewController dla każdego widoku, możesz utworzyć viewController z kodem powyżej w -viewDidLoad lub -awakeFromNib method. Następnie podklasuj ten viewController dla każdego kontrolera view, którego potrzebujesz. W ten sposób masz tylko jedno miejsce, w którym znajduje się kod dla infoButton. Tylko pomysł. – Jordan

9

Można go również uzyskać na storyboardzie. Przeciągnij UIButton do paska nawigacyjnego zamiast zwykłego UIBarButtonItem. Zobaczysz, że twój przycisk zostanie "zagnieżdżony" wewnątrz elementu przycisku paska, który można rozwinąć.

enter image description here

Następnie można zmienić właściwość type wyświetla się przycisk do informacji światła | ciemno od inspektora atrybutów.

enter image description here

+0

Cuda Xcode;) –

Powiązane problemy