sách gpt4 ai đã đi

ios - iMessage 应用程序不断重新启动

In lại 作者:行者123 更新时间:2023-11-30 12:04:56 27 4
mua khóa gpt4 Nike

每当我在 iMessage 应用程序外部滑动以打开另一个 iMessage 应用程序,然后通过向后滑动返回到我的 iMessage 应用程序时,我的 iMessage 应用程序都会再次加载。

thậm chí MessagesViewController của viewDidLoad 也会再次被调用。

我在 MessagesViewController 中的代码看起来像-

class MessagesViewController: MSMessagesAppViewController {

override func viewDidLoad() {
super.viewDidLoad()
openSuitableController()
}

override func willTransition(to presentationStyle: MSMessagesAppPresentationStyle) {
removeAllChildViewControllers()
}

override func didTransition(to presentationStyle: MSMessagesAppPresentationStyle) {
openSuitableController()
}
}

hiện hữuopenSuitableController中,我只是将一个childViewControllerThêm vàoMessagesViewController.

由于应用程序再次启动,collectionView 被加载并滚动到顶部,导致闪烁。

如果您需要更多信息,请发表评论。

PS:我添加了 Objective-C 标签,因为我不认为这个问题是由于特定语言造成的。

1 Câu trả lời

我认为这是不可避免的,并且这正是 iMessage 管理其托管的 iMessage 应用程序的方式。即:当您滑出时,iMessage 框架会关闭您的应用程序,并启动您滑入的下一个应用程序。 iOS 11 及之前的版本就是如此,当然,将来可能会发生变化。

iMessage 有一种相当复杂的方式来呈现您的 UI,将其嵌入到自己的沙盒容器 View Controller 层次结构中,这是为了确保 iMessage 本身与私有(private)聊天数据和您的应用程序之间的安全信任边界。因此,与应用程序自行启动相比,呈现应用程序的开销更大,我的猜测是应用程序像这样重新启动,以最大限度地减少资源使用并保护 iMessage 免于耗尽其所需的资源。

值得让您的应用程序启动尽可能快(例如通过限制动态库加载时间),并记住您的初始内容在交换为存储的快照时的外观。

我认为,最大限度地减少应用程序启动和停止时完成的工作非常重要,以便在应用程序之间实现最平滑的转换。

当您从一个应用程序滑出到另一个应用程序时,iMessage 会生成前一个 UI 状态的快照图像,然后在滑回您的应用程序时,它会在您的应用程序进行初始化时显示该快照。

因此,仔细查看快照过程并尝试确保您的初始 UI 演示能够很好地从 iMessage 框架生成的快照过渡是值得的。

关于ios - iMessage 应用程序不断重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46784253/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com