在 iPhone 上显示非模态“加载”消息的最佳方法是什么?



我有一个iPhone应用程序,有时当用户按下按钮时,选择的操作将需要一两分钟。我想显示一条消息,指示用户等待,但同时不阻止用户使用该应用程序。我还想在消息上自定义文本。

另一个要求是我使用 TabBar 控制器作为主导航控件。

我的想法是在屏幕顶部显示一条消息,将内容向下推 20 像素。请注意,由于将有多个屏幕,因此此 20 像素消息必须独立于任何单个屏幕。

我尝试了几种不同的方法,每种方法都有缺点。

1 - 具有根视图并使用 TabBarController 调用 AddSubView。然后,我可以调整 TabBarController 的大小,并在下面的根视图上显示消息。此操作失败,因为 TabBarController 子视图不会收到"ViewDidAppear"消息。有趣的是,如果我在稍后的某个时间点显示模态窗口,"ViewDidAppear"消息将开始工作。但我希望ViewDidEmerge在开始时出现。

2 - 类似于 #1。具有根视图并将 TabBar 控制器显示为模式视图。这允许 ViewDidSeem 工作,但如果屏幕旋转,旋转消息不会传播到根视图。所以我无法旋转根视图。

3 - 子类 TabBar 控制器以正确处理旋转。苹果文档说不要这样做,所以我担心我的应用程序会被拒绝,如果我能让它工作的话。

4 - 向主窗口添加两个视图。一个用于显示消息,一个用于应用内容。这遇到了与选项 #2 相同的旋转问题。

任何建议不胜感激。谢谢。

这不是您问题的确切答案,但您可以考虑在状态栏顶部使用消息。Reeder 使用它,我发现它是一个非常有趣且不显眼的反馈的好例子(这也为您节省了一些像素:)。如果您想轻松制作,请查看此库(请务必阅读警告)。Kris Van Bael在评论中也建议的第二种选择是添加自定义视图,就像Instagram一样。同样,本文中有详细信息。我希望这有所帮助!

最新更新