Dodawanie przycisków do widoku tytułu NavigationBar bez konieczności powtarzania kodu

Aby dać trochę informacji, tworzę aplikację typu blogu opartą na sterowaniu UINavigationControl (przypuszczam, że najbardziej przypomina aplikację na Facebooku). Niezależnie od tego, który widok jest aktualnie aktywny, NavigationBar pokazuje niektóre przyciski w jego obszarze tytułu, takie jak Żądania znajomych i Powiadomienia o aktywności. Podobnie jak aplikacja na Facebooku, kliknięcie tych przycisków spowoduje wyświetlenie widoku popup.

Obecnie robię rzeczy w sposób, który uważam za niewiarygodnie nieefektywny. Dla każdego załadowanego widoku odtwarzam przyciski i dodajesz je do paska nawigacji. Mój kod jest poniżej:

<code>//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];
</code>

Ponieważ moja aplikacja ma wiele widoków, a pasek nawigacyjny jest zawsze widoczny, głupie wydaje się odtwarzanie przycisków, dodawanie ich do widoku kontenera, a następnie dodawanie tego widoku do tytułu Widok kontrolera nawigacyjnego.

Jaki byłby lepszy sposób na osiągnięcie tego samego efektu? Szukałem podklasy lub tworzenia kategorii dla UINavigationBar i być może dodałem tam kod widoku kontenera. Nie wiedziałem jednak, jak sprawić, by selektory działały w tych przypadkach. Nie byłem też pewien, jak uzyskać dostęp do właściwości titleView z kategorią UINavigationBar.

Każda pomoc na ten temat byłaby świetna! Dziękuję Ci!

questionAnswers(1)

yourAnswerToTheQuestion