gpt4 book ai didi

ios - 注销后从内存中删除 View Controller ?

转载 作者:行者123 更新时间:2023-11-30 13:12:51 26 4
gpt4 key购买 nike

我有一个水平滚动的单元格 Collection View 。每次我注销时,我的主视图 Controller 都会消失到登录屏幕。但是当我重新登录时,似乎我的主视图 Controller 从未从内存中删除。我这样说是因为我的 Collection View 单元格的位置与我注销之前的位置相同。

我尝试了一切,从 viewWillAppear 和重新加载数据,到尝试将 View Controller 中的日志作为我的根窗口。有什么建议吗?

(为了清楚地演示这一点,当您(从设置 View Controller )注销 Instagram 时,会以模态方式呈现登录 View 。当您重新登录时,您会看到主页提要,而不是设置 View Controller 。我想重置数据的层次结构)

class MainController: UICollectionViewController, UICollectionViewDelegateFlowLayout {

let feedId = "feedId"

var allUserCategory: AllUserCategory?

override func viewDidLoad() {
super.viewDidLoad()

collectionView?.pagingEnabled = true
collectionView?.backgroundColor = UIColor(r: 250, g: 250, b: 250)
collectionView?.registerClass(AllUserCategory.self, forCellWithReuseIdentifier: feedId)

navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Log Out", style: .Plain, target: self, action: #selector(handleLogout))
navigationItem.rightBarButtonItem?.tintColor = UIColor.blueColor()
navigationController?.navigationBar.translucent = false

checkIfUserLoggedIn()
}

override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)

self.collectionView?.reloadData()
}

func handleLogout() {
print("Logged out")
do {
try FIRAuth.auth()?.signOut()

} catch let logoutError {
print(logoutError)
}

allUserCategory?.users.removeAll()

let loginController = LoginController()
let loginNav = UINavigationController(rootViewController: loginController)
presentViewController(loginNav, animated: true, completion: nil)
}
}

最佳答案

在dealloc中添加NSLog

也许你的代码(MainViewController)中有一些内存泄漏。

关于ios - 注销后从内存中删除 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38549341/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com