我正在使用此代码:
- (void)viewDidLoad {
NSLog(@"searchbar hide");
self.tableView.contentOffset = CGPointMake(0, 44);
}
隐藏SearchBar
中的TableView
。它运作得很好。
问题在于:
TableView的行具有推送到第二个场景的segue。当应用程序从push segue返回时,SearchBar
会出现粗略动画。我希望它像Notes.app一样重新隐藏。
我尝试过但没有工作:
viewDidUnload
中调用相同的方法viewWillAppear
中调用相同的方法有没有简单的方法来实现这一目标?
修改
我在主场景的SecondViewController.hidesBottomBarWhenPushed = YES;
方法中调试了导致这种情况的原因- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
。如果我对此行发表评论SearchBar
没有出现,那么现在的问题是我的辅助场景中有一个不需要的BottomBar
。
当(几乎)总是发生时,问题就会转移......
答案 0 :(得分:0)
在viewWillAppear中设置tableview的contentOffset,与viewDidLoad相比,每次视图重新出现时都会调用该视图,在视图控制器的生命周期内只会调用一次。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
CGRect newBounds = self.tableView.bounds;
newBounds.origin.y = newBounds.origin.y + searchBar.bounds.size.height;
self.tableView.bounds = newBounds;
}
此处searchBar应替换为您的搜索栏