Próbuję dodać przycisk odświeżania do górnego paska kontrolera nawigacji bez powodzenia.
Oto nagłówek:
@interface PropertyViewController : UINavigationController {
}
Oto jak próbuję to dodać:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain
target:self action:@selector(refreshPropertyList:)];
self.navigationItem.rightBarButtonItem = anotherButton;
}
return self;
}
iphone
ios
uinavigationcontroller
uinavigationbar
Artilheiro
źródło
źródło
self.topViewController.navigationItem.leftBarButtonItem = nextButton;
Spróbuj dodać przycisk do elementu nawigacji kontrolera widoku, który ma zostać wypchnięty na
PropertyViewController
utworzoną przez ciebie klasę.To jest:
Teraz ten przycisk info, który został utworzony programowo, pojawi się na pasku nawigacyjnym. Chodzi o to, że kontroler nawigacyjny pobiera informacje o wyświetlaniu (tytuł, przyciski itp.) Z tego
UIViewController
, co ma zamiar wyświetlić. Tak naprawdę nie dodajesz przycisków i tak bezpośrednio doUINavigationController
.źródło
Wygląda na to, że niektórzy ludzie (jak ja) mogą tu przyjechać i szukać sposobu dodania przycisku paska nawigacji w Konstruktorze interfejsów. Poniższa odpowiedź pokazuje, jak to zrobić.
Dodaj kontroler nawigacji do swojej Storyboard
Wybierz widok kontrolera, a następnie w menu Xcode wybierz polecenie Edytor> Osadź w> Kontroler nawigacji .
Alternatywnie możesz dodać
UINavigationBar
z biblioteki obiektów.Dodaj element przycisku paska
Przeciągnij a
UIBarButtonItem
z biblioteki obiektów na górny pasek nawigacyjny.To powinno wyglądać tak:
Ustaw atrybuty
Możesz dwukrotnie kliknąć „Element”, aby zmienić tekst na coś w rodzaju „Odśwież”, ale istnieje odpowiednia ikona Odśwież , której możesz użyć. Wystarczy wybrać Inspektora atrybutów dla
UIBarButtonItem
i dla pozycji systemu wybierz Odśwież .To da domyślną ikonę Odśwież.
Dodaj akcję IB
Przeciągnij i przeciągnij z
UIBarButtonItem
kontrolera widoku, aby dodać@IBAction
.Otóż to.
źródło
Domyślny przycisk systemowy „Odśwież”:
źródło
Możesz użyć tego:
Cel C
Szybki
źródło
źródło
Dla szybkiego 2:
źródło
Oto rozwiązanie w Swift (ustaw opcje w razie potrzeby):
źródło
Dlaczego jesteście podklasami
UINavigationController
? Nie ma potrzeby dzielenia go, jeśli wszystko, co musisz zrobić, to dodać do niego przycisk.Ustaw hierarchię
UINavigationController
u góry, a następnie wviewDidLoad:
metodzie kontrolera widoku głównego : ustaw przycisk i dołącz go do elementu nawigacyjnego, wywołującźródło
Możesz spróbować
źródło
Swift 4:
źródło
źródło
Spróbuj tego. To działa dla mnie.
Pasek nawigacji, a także dodano obraz tła do prawego przycisku.
źródło
źródło
źródło
źródło
Powinieneś dodać swój barButtonItem w
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
metodzie.źródło
Po prostu skopiuj i wklej ten kod Celu C.
źródło
Ten problem może wystąpić, jeśli usuniemy kontroler widoku lub spróbujemy dodać nowy kontroler widoku w narzędziu do tworzenia interfejsów (main.storyboard). Aby rozwiązać ten problem, konieczne jest dodanie „elementu nawigacyjnego” w nowym kontrolerze widoku. Czasami zdarza się, że tworzymy nowy ekran kontrolera widoku i nie łączy się on automatycznie z „Elementem nawigacji”.
źródło
Możesz także dodawać wiele przycisków za pomocą
rightBarButtonItems
źródło
@Artilheiro: Jeśli jest to projekt oparty na nawigacji, możesz utworzyć BaseViewController. Wszystkie inne widoki odziedziczą ten BaseView. W BaseView możesz zdefiniować ogólne metody dodawania prawego przycisku lub zmiany tekstu lewego przycisku.
dawny:
A teraz w dowolnym widoku niestandardowym zaimplementuj ten widok podstawowy:
W niektórych metodach metoda bazowa wywołuje jako:
źródło