你离开后会重新加载一个视图吗?

时间:2017-03-13 11:58:15

标签: ios swift xcode swift3 xcode8

我有一个视图控制器。它包含一些数据和值。然后它以模态方式呈现给另一个视图并移动并发生一些事情。然后在某个时候,你 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { unbinder = ButterKnife.bind(this, mView); if (mView == null && context != null) { mView = inflater.inflate(getLayoutId(), container, false); if (savedInstanceState != null) { onRestoreInstanceState(savedInstanceState); } initParams(); } else if (mView != null) { ViewGroup parent = (ViewGroup) mView.getParent(); if (parent != null) { parent.removeView(mView); } } return mView; } @Override public void onDestroyView() { super.onDestroyView(); unbinder.unbind(); } 。回到原始视图后,我可以依靠原始数据吗?任何帮助是极大的赞赏。提前谢谢!

3 个答案:

答案 0 :(得分:1)

除非您专门为您编写代码,否则它们不会受到影响。

例如,如果您在viewDidLoad()中调用网络请求并将数据添加到某些视图,标签等,那么您将离开该ViewController并返回,不会发生任何变化,即网络请求将不再被召唤。

如果您想在每次出现时更改ViewController中的值,请使用viewDidAppear()委托方法。

答案 1 :(得分:0)

要重新加载关闭视图,您必须使用viewWillAppear(),因为每次渲染视图之前都会这样做

答案 2 :(得分:0)

调用{{1}}将删除viewController。如果您没有对存储在别处的视图控制器的强引用,则解除它会释放与其关联的内存。

如果呈现的视图控制器必须将数据返回到呈现视图控制器,请使用委托设计模式来促进传输。

因此,如果数据未在呈现的控制器中被修改,那么它将是相同的,那么你可以依赖它

参考:filling up a glass of water