objective-c - iOS 开发如何实现 push 出来的 Controller 在 pop 回上一页面的时候不释放?
高洛峰
高洛峰 2017-04-18 09:18:36
0
9
360

发现 QQ ,微信等在 Push 进 好友动态、朋友圈 这些页面的时候,总能保留在上一次进入时候最后浏览到的位置。这是如何实现的呢?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(9)
PHPzhong

Apa yang anda perlukan hanyalah rujukan yang kukuh kepada viewController


@property (nonatomic, strong) FooViewController *viewController;

...

- (void)push {
    if (!_viewController) {
        _viewController = [[FooViewController alloc] init];
    }
    [self.navigationController pushViewController:_viewController animated:YES];
}

Dengan cara ini, selepas muncul, viewController masih mempunyai rujukan kukuh yang menunjuk kepadanya dan tidak akan dikosongkan. Kali seterusnya anda menolak, masih menolak ke viewController

刘奇

Itu sebenarnya cache

Ty80

Perkara yang paling mudah ialah menjadikannya tunggal. Terdapat hanya satu contoh dalam keseluruhan kitaran hayat apl. Cipta sekali semasa pemulaan, dan gunakannya sepanjang masa.

黄舟

Boleh menyimpan atribut halaman, seperti offset dan seumpamanya

大家讲道理

Ini adalah masa terhad, bukan? Anda hanya perlu menilai perbezaan masa antara masa keluar dan masa masuk semula Jika perbezaan masa kurang daripada perbezaan masa, antara muka akan muncul Jika perbezaan masa lebih besar daripada perbezaan masa antara muka akan dimuat semula.

黄舟

Hanya laksanakan kaedah tolak dan pop sendiri

Peter_Zhu

Tulis vc seterusnya sebagai atribut dan kemudian tolaknya

PHPzhong

Cuma jangan biarkan halaman itu dikeluarkan

洪涛

Hanya ada satu perkara seperti Moments dalam APP, saya rasa lebih baik menjadikannya singleton. Selepas melihatnya, apabila rangkaian terputus, ia menunjukkan bahawa ia sedang dimuatkan apabila saya menariknya ke atas.
Dan data juga dicache Jika anda memutuskan sambungan daripada Internet, matikan APP, dan masukkan semula, data yang dimuat semula sebelum ini dalam kalangan rakan boleh dilihat

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan