2009-10-02 14 views
7

Jestem nowy w programowaniu dla iphone, więc jeśli mógłbyś mi pomóc, byłbym wdzięczny - byłam w Internecie i nie mogę znaleźć odpowiedzi na to pytanie.iPhone: dodawanie kontroli segmentacji do paska narzędzi zamiast przycisków w kontrolerze nawigacyjnym?

moja obecna konfiguracja jest jak ten

kontrolerem nawigacyjnym w MainWindow.xib> Widok z kontrolerem nawigacyjnym w MainWindow.xib wzywa RootViewController.xib> RootViewController.xib zawiera pojedynczy tableview.

mogę następnie załadować na pasek narzędzi, za pomocą następującego kodu w RootViewController.m

UIBarButtonItem *buttonOne = [[UIBarButtonItem alloc] initWithTitle:@"One" 
    style:UIBarButtonItemStyleBordered target:self action:@selector(buttonOnePushed)]; 
UIBarButtonItem *buttonTwo = [[UIBarButtonItem alloc] initWithTitle:@"Two" 
    style:UIBarButtonItemStyleBordered target:self action:@selector(buttonTwoPushed)]; 

NSArray *barArray = [NSArray arrayWithObjects: buttonOne, buttonTwo, nil]; 
[buttonOne release]; 
[buttonTwo release]; 

[self setToolbarItems:barArray animated:YES]; 

[self.navigationController setToolbarHidden:NO animated:YES]; 

ten kod działa dla przycisków. ale nie mogę do końca życia dowiedzieć się, jak dodać podzieloną na segmenty kontrolkę zamiast przycisków. Próbowałem wypróbować tablicę z dwoma podzielonymi na segmenty kontrolkami, ale nie można dodać tablicy do paska narzędzi.

Jeśli ktoś może dać mi znać, że kod będzie dodawał segmentowane elementy sterujące w taki sam sposób, jak użyłem do dodania przycisków, byłbym bardzo wdzięczny.

dzięki, Dave.

Odpowiedz

20

Rozwiązanie to jest (1) tworzą się UISegmentedControl ze wszystkich przycisków, itd, a następnie (2) tworzenie UIBarButtonItem pomocą initWithCustomView:(UIView *)view inicjatora i zapewniają kontrolę segmentową jako zmiennej na to. Następnie dodaj element paska Bar na pasku narzędzi, używając tablicy, tak jak w przykładowym kodzie.

Upewnij się, że ustawiłeś cel i działanie dla segmentowanego kontrolera, i zalecam ustawienie jego stylu na UISegmentedControlStyleBar. Będzie wyglądać tak, jak ta na dole aplikacji Mapy. Mam nadzieję, że tego właśnie szukasz.

+0

Jak uzyskać, który segment jest wybrany w selektorze segmentowanym kontrolerem? – Neelesh

+0

sprawdź jego właściwość selectedSegmentIndex –

11

Oto mój kod, który dodaje segmentowaną kontrolę do paska narzędzi kontrolera nawigacyjnego. :

NSArray *segItemsArray = [NSArray arrayWithObjects: @"Settings", @"Templates", @"Notes", nil]; 
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segItemsArray]; 
segmentedControl.frame = CGRectMake(0, 0, 200, 30); 
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
segmentedControl.selectedSegmentIndex = 2; 
UIBarButtonItem *segmentedControlButtonItem = [[UIBarButtonItem alloc] initWithCustomView:(UIView *)segmentedControl]; 
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
NSArray *barArray = [NSArray arrayWithObjects: flexibleSpace, segmentedControlButtonItem, flexibleSpace, nil]; 

[self setToolbarItems:barArray]; 
+0

dzięki za to, że pracował jak czar –

Powiązane problemy