【问题标题】:How do I reset UIScrollView to Zeroth Page/Index when Clicking on a Tab Bar Item?单击选项卡栏项时如何将 UIScrollView 重置为第零页/索引?
【发布时间】:2011-06-27 20:46:12
【问题描述】:

我有一个带有 3 个标签的标签栏应用程序。第一个选项卡加载嵌套在分页滚动视图中的 UIImageView。如果用户在页面中滚动一会儿,然后单击另一个选项卡,然后单击返回到第一个选项卡,他们将返回到滚动视图中的最后一个页面。

如何让我的第一个标签栏项目在每次点击时重置为 UIImageView 中的初始图像/页面?

谢谢!

【问题讨论】:

  • viewWillAppear:中设置滚动视图到第一页还不够好吗?
  • 不,该方法不起作用,因为用户可以选择在 ScrollView 中初始化“MFMailComposeViewController”,并且在发送/保存/取消电子邮件时,它会将用户返回到第一页(如果我使用您的解决方案),这不是我希望在他们发送电子邮件时发生的事情。只有当他们点击第一个标签栏项目时才会发生这种情况。
  • 然后查看UITabBarControllerDelegate
  • 对,我一直是,但我对 iOS 开发太陌生了,我不知道如何告诉它去做我需要它做的事情。我认为这与- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {} 有关
  • tabBarController:shouldSelectViewController: 中可以使用视图控制器参数来检查第一个标签栏是否即将被选中。如果是这种情况,请将您的滚动视图设置为第一页。在任何情况下,只需返回 YES 以允许选择正常进行。

标签: iphone objective-c ios uiscrollview scrollview


【解决方案1】:

看看: UITabBarControllerDelegate。你有一个回调 didSelectViewController。 一个解决方案是让您的 ApplicationDelegate 获取此回调,并从第一个选项卡通知您的 firstviewcontroller 调用一个只会将用户带到第一页的方法。

【讨论】:

  • 这就是我想要做的,但我不知道该怎么做。
  • 使用 shouldSelectViewController 解决了这个问题。谢谢!
猜你喜欢
  • 1970-01-01
  • 2019-08-21
  • 2012-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多