我添加了一个带有此代码的工具栏:
- (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];
}
但是当我使用导航控制器更改视图时,工具栏会停留在那里......
如何删除该子视图?
答案 0 :(得分:2)
UINavigationController内置了一个工具栏,默认情况下是隐藏的。您可以使用[navigationController setNavigationBarHidden:animated:];
显示它。您可能想要使用它。然后,在推送视图控制器之前,将该视图控制器的hidesBottomBarWhenPushed属性设置为true。
您的工具栏在此实例中不会消失的原因是您将其添加到navigationController的视图中,该视图显示在它控制的其他视图之上。您可以将其添加为自我的子视图。
要回答您的具体问题,要从任何超级视图中删除工具栏,请使用[toolbar removeFromSuperview]
。在这种情况下,我会使用更清晰的解决方案,使用内置于导航控制器中的工具栏。