Есть ли лучший способ скрыть backBarButtonItem, чем этот? - PullRequest
9 голосов
/ 27 марта 2009

У меня есть способ скрыть кнопку возврата, используемую навигационным контроллером. Он установлен предыдущим контроллером, а не тем, который управляет текущим представлением, и поэтому сложно добраться до него. Мне нужно было сделать это в режиме редактирования, чтобы пользователь не мог отойти от экрана.

if(self.editing) {
    // Get rid of the back button   
    UIView *emptyView = [[UIView alloc] init];;
    UIBarButtonItem *emptyButton = [[[UIBarButtonItem alloc] initWithCustomView:emptyView] autorelease];
    [self.navigationItem setLeftBarButtonItem:emptyButton animated:YES];
} else {
    // Restore the back button
    [self.navigationItem setLeftBarButtonItem:nil animated:YES];        
}

Есть ли лучший способ сделать это?

Ответы [ 3 ]

45 голосов
/ 27 марта 2009

используйте это, чтобы скрыть кнопку возврата

[self.navigationItem setHidesBackButton:YES]

используйте это, чтобы показать кнопку возврата

[self.navigationItem setHidesBackButton:NO]
1 голос
/ 23 мая 2012

Вот метод, который я использую в своем контроллере представления, чтобы показать и скрыть кнопку возврата, когда редактирование включено и отключено:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    if (editing) {
        // Disable the back button
        [self.navigationItem setHidesBackButton:YES animated:YES];
    }
    else {
        // Enable the back button
        [self.navigationItem setHidesBackButton:NO animated:YES];
    }

    [super setEditing:editing animated:animated];
}
0 голосов
/ 14 февраля 2013

Сделайте розетку с сильной (не слабой по умолчанию) кнопкой панели от раскадровки к контроллеру представления. Цель состоит в том, чтобы не потерять ссылку, когда вы установите левую / правую полосовую кнопку на ноль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...