Как удалить Подпредставление из navigationController?

Я добавил панель инструментов с этим кодом:


- (void)viewWillAppear:(BOOL)animated {
    UIBarButtonItem *yesterday = [[UIBarButtonItem alloc]initWithTitle:@"Yesterday" 
                                                                 style:UIBarButtonItemStyleBordered target:self action:@selector(yesterday:)];
    UIBarButtonItem *today = [[UIBarButtonItem alloc]initWithTitle:@"Today" 
                                                             style:UIBarButtonItemStyleDone target:self action:@selector(today:)];
    UIBarButtonItem *tomorrow = [[UIBarButtonItem alloc]initWithTitle:@"Tomorrow" 
                                                                style:UIBarButtonItemStyleBordered target:self action:@selector(tomorrow:)];
    UIBarButtonItem *month = [[UIBarButtonItem alloc]initWithTitle:@"Month" 
                                                             style:UIBarButtonItemStyleBordered target:self action:@selector(month:)];
    NSArray *items = [NSArray arrayWithObjects:yesterday,today,tomorrow,month, nil];

    [yesterday release];
    [today release];
    [tomorrow release];
    [month release];

    UIToolbar *toolbar = [[UIToolbar alloc] init];
    [toolbar sizeToFit];
    [toolbar setFrame:CGRectMake( 0, 20, 320, 40)];
    [toolbar setItems:items];
    [self.navigationController.view addSubview:toolbar];
}

но когда я изменяю представление с помощью контроллера навигации, панель инструментов остается там...

как я могу удалить то подпредставление?

1
задан Mr_Nizzle 9 June 2010 в 20:05
поделиться

1 ответ

UINavigationController имеет встроенную панель инструментов, которая по умолчанию скрыта. Вы можете отобразить его, используя [navigationController setNavigationBarHidden: animated:]; . Возможно, вы захотите использовать это вместо этого. Затем, прежде чем нажимать на контроллер представления, установите для свойства hidesBottomBarWhenPasted этого контроллера представления значение true.

Причина, по которой ваша панель инструментов не исчезает в этом случае, заключается в том, что вы добавляете ее в представление navigationController, которое отображается поверх других представлений, которыми он управляет. Вместо этого вы можете добавить его как часть себя.

Однако, чтобы ответить на ваш конкретный вопрос, чтобы удалить панель инструментов из любого супервизора, используйте [toolbar removeFromSuperview] . В этом случае я бы выбрал более чистое решение - использовать панель инструментов, встроенную в контроллеры навигации.

2
ответ дан 2 September 2019 в 23:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: