Нужно 2 UIBarButtonItems, где находится кнопка назад - PullRequest
1 голос
/ 08 апреля 2011

У меня есть типичная схема UINavigationController, но у меня есть много разных представлений, которые могут означать, что вы можете получить довольно много представлений, накладываемых друг на друга. Я хочу предоставить кнопку «Домой», и первоначально я собирался поместить ее в правую часть панели навигации; тем не менее, у меня есть панель поиска и еще одна кнопка, поэтому я надеюсь разместить ее рядом с кнопкой возврата.

В ascii art:

< Back |  |Home|                Title              |Browse| [Search Bar]

Теперь я попытался установить backButtonItem предыдущего контроллера представления, используя следующее:

        UIToolbar* toolbar = [[UIToolbar alloc]
                          initWithFrame:CGRectMake(0, 0, 100, 45)];
    [toolbar setBarStyle: UIBarStyleBlackOpaque];

    // create an array for the buttons
    NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:3];

    UIBarButtonItem *back = [[UIBarButtonItem alloc] init];
    back.title = @"Back";

    // create a standard save button
    [buttons addObject:back];
    [back release];

    // create a spacer between the buttons
    UIBarButtonItem *spacer = [[UIBarButtonItem alloc]
                               initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
                               target:nil
                               action:nil];
    [buttons addObject:spacer];
    [spacer release];

    UIBarButtonItem *homeButton = [[UIBarButtonItem alloc]
                                   initWithImage:[UIImage imageNamed:@"home32.png"] 
                                   style:UIBarButtonItemStylePlain 
                                   target:self 
                                   action:@selector(onHomeButton:)];
    homeButton.style = UIBarButtonItemStyleBordered;
    [buttons addObject:homeButton];
    [homeButton release];

    // put the buttons in the toolbar and release them
    [toolbar setItems:buttons animated:NO];
    [buttons release];

    // place the toolbar into the navigation bar
    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]
                                             initWithCustomView:toolbar];
    [toolbar release]; 

но это не заменяет стандартную кнопку возврата. Если я просто попробую один UIBarButtonItem и установлю backButton, это сработает.

Теперь другой подход, который я попробовал, заключается в том, чтобы в представлении, помещаемом в стек, установить leftBarButtonItem, но я не могу найти способ создать кнопку возврата, которая имеет заостренную форму слева.

Есть предложения?

1 Ответ

0 голосов
/ 08 апреля 2011

Можете ли вы попробовать

self.navigationItem.leftBarButtonItem=[[UIBarButtonItem alloc]
                                             initWithCustomView:toolbar];

удачи

...