在UIViewController中,deinit方法没有在ios中调用
我尝试了下面的代码,以便在popToViewcontroller deinit方法不调用导航之后导航到下一个deinit。
let data = isSearchEnabled ? repository.filteredList[index] : repository.list[index]
let appDelegate = UIApplication.shared.delegate as! AppDelegate
(appDelegate.window?.rootViewController as! UITabBarController).tabBar.isHidden = true
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "AuctionDetailsViewController") as! AuctionDetailsViewController
viewController.auction = data.getAuctionData()
viewController.parentVC = self
parentNavigationController?.pushViewController(viewController, animated: true)PushView:
deinit {
print("AuctionDetailsViewController deallocated...")
}上面的deinit方法应该调用popToViewcontroller
发布于 2019-05-09 07:24:05
您需要了解使用ARC完成的内存管理( iOS )。你可以读到这个这里
不调用Deinit(),如果查看器.
保存对象(保留周期)的强引用 您需要检查和删除对对象的不必要的强引用,以避免零售周期,有通知观察者。 您需要取消注册一个观察者,因为通知中心保留了观察者,直到您注销它。委托的使用(保持它的强引用) 如果视图控制器正在确认委托应该标记为
weak的协议。
上面提到的是阻止视图控制器去分配的一些要点,并且从来没有调用deinit。也许还有其他的原因也是如此。
https://stackoverflow.com/questions/56053838
复制相似问题