Um etwas Hintergrund zu geben, mache ich eine UINavigationControlled-basierte Blog-App (ich nehme an, es ähnelt am ehesten der iPhone Facebook App). Unabhängig von der derzeit aktiven Ansicht zeigt die Navigationsleiste einige Schaltflächen im Titelbereich an, z. B. Freundschaftsanfragen und Aktivitätsbenachrichtigungen. Ähnlich wie die Facebook-App wird durch Klicken auf diese Schaltflächen eine Popup-Ansicht erstellt.Hinzufügen von Schaltflächen zur Titelansicht von NavigationBar, ohne Code wiederholen zu müssen
Momentan mache ich Dinge auf eine Weise, die ich unglaublich uneffizient finde. Für jede geladene Ansicht erstelle ich die Schaltflächen neu und füge sie der Navigationsleiste hinzu. Mein Code ist unten:
//Setup the custom middle buttons
UIView *container = [[UIView alloc] init];
container.frame = CGRectMake(0, 0, 80, 44);
// create a button and add it to the container
UIButton *notificationButton = [UIButton buttonWithType:UIButtonTypeCustom];
notificationButton.frame = CGRectMake(0, 0, 35, 44);
[notificationButton addTarget:self
action:@selector(showNotifications:)
forControlEvents:UIControlEventTouchUpInside];
[container addSubview:notificationButton];
// add another button to the container
UIButton *friendActivityButton = [UIButton buttonWithType:UIButtonTypeCustom];
friendActivityButton.frame = CGRectMake(45, 0, 35, 44);
[friendActivityButton addTarget:self
action:@selector(showFriendActivity:)
forControlEvents:UIControlEventTouchUpInside];
[container addSubview:friendActivityButton];
// Set the titleView to the container view
[self.navigationItem setTitleView:container];
[container release];
Da meine App mehrere Ansichten und die Navigationsleiste hat immer sichtbar ist, ist es dumm scheint auf neu zu erstellen um die Tasten zu halten, um sie zu einem Behälter Ansicht Hinzufügen dann fügte hinzu, dass im Hinblick auf den Titleview der Navigationssteuerung.
Was wäre ein besserer Weg, um den gleichen Effekt zu erzielen? Ich habe nach Unterklassen gesucht oder eine Kategorie für UINavigationBar erstellt und dort möglicherweise den Code für die Containeransicht hinzugefügt. Allerdings wusste ich nicht, wie man die Selektoren in diesen Fällen arbeiten lässt. Ich war auch nicht sicher, wie man Zugang zur Eigenschaft titleView mit einer UINavigationBar Kategorie erhält.
Jede Hilfe zu diesem Thema wäre großartig! Vielen Dank!
Vielen Dank, so eine einfache Lösung. Ich wusste, dass ich falsch liege! – kurisukun