1

这对我来说似乎有点奇怪,但我是 iOS 新手,所以可能会发生一些我不知道的明显事情(我在不一致的部分加上星号):

  1. 我有两个选项卡:Tab1 和 Tab2
  2. Tab1 是基本视图。
  3. Tab2 是 Master-Detail 类型的设计模式,一个 UITableViewController 作为 Master 选项卡,一个 Scroll View(嵌套在 UIViewController 中)作为 Detail 选项卡。
  4. 每当我单击 Tab2 主视图中的一个单元格时,它都会按预期将我带到详细信息视图。
  5. 如果我在详细视图中向下滚动,然后单击 Tab1,然后单击 Tab2,它将重新加载它离开的详细视图(向下滚动)。*
  6. 但是,在我这样做之后,如果我单击 Tab1,然后单击 Tab2(与我在上一步中所做的完全相同),它会从页面顶部重新加载详细视图。*

我告诉它使用此代码从页面顶部重新加载详细信息视图,该代码位于包含滚动视图的视图控制器的类内:

-(void)viewDidAppear:(BOOL)animated{
    [self.scrollView setContentOffset:CGPointMake(self.scrollView.contentOffset.x, 0) animated:NO];
    [self.scrollView setScrollEnabled:YES];
    [super viewDidAppear:animated];
}

我只是发现第一次在选项卡之间来回切换(第 5 步)没有从屏幕顶部显示滚动视图,但第二次在选项卡之间来回切换(第 6 步)确实显示出来,这真的很奇怪屏幕顶部的滚动视图。

知道是什么原因造成的吗?多次重新加载选项卡时是否通过不同的方法加载选项卡?

任何建议将不胜感激!谢谢!

4

1 回答 1

0

我想通了,应该是 viewWillAppear,而不是 viewDidAppear

-(void)viewWillAppear:(BOOL)animated{
    [self.scrollView setContentOffset:CGPointMake(self.scrollView.contentOffset.x, 0) animated:NO];
    [self.scrollView setScrollEnabled:YES];
    [super viewDidAppear:animated];
}
于 2013-07-12T18:05:07.350 回答