iphone如何从内存中删除modal uiviewcontroller

iphone如何从内存中删除modal uiviewcontroller,iphone,memory,uiviewcontroller,Iphone,Memory,Uiviewcontroller,我有一个根UIViewController,它有一个名为webView的属性。WebView是具有包含UIWebView的XIB的UIViewController。从我的根视图中,我以模式(还有其他方式吗?)加载webView ViewController并设置其URL,始终为同一页面 我发现,如果在加载webView后,我使用其默认网页导航到另一个网页,然后关闭webView并返回到根控制器,然后重新打开webView,则webView显示的不是默认网页,而是我导航到的网页,这意味着webVi

我有一个根UIViewController,它有一个名为webView的属性。WebView是具有包含UIWebView的XIB的UIViewController。从我的根视图中,我以模式(还有其他方式吗?)加载webView ViewController并设置其URL,始终为同一页面

我发现,如果在加载webView后,我使用其默认网页导航到另一个网页,然后关闭webView并返回到根控制器,然后重新打开webView,则webView显示的不是默认网页,而是我导航到的网页,这意味着webView ViewController从未被销毁并从内存中删除。我觉得这很糟糕

因此,在根ViewController中,我在ViewWillDisplay:animated下添加了以下代码--

这是否足够?有更好的办法吗

我有一个根UIViewController 具有名为webView的属性。网络视图 是一个带有XIB的UIViewController 包含UIWebView

首先,风格建议。不要命名视图控制器类
FooView
。将它们命名为
FooViewController
。因为他们就是这样。控制器。不是观点

从我的根本观点来看,我是模态的(有吗 还有其他方法吗?)加载webView 查看控制器并设置其URL,始终 到同一页

您可以通过多种方式在屏幕上显示视图;将其显示为模型视图控制器是一种方法。另一种方法是使用导航控制器并将其推送到导航堆栈上。另一种方法是使用动画基本体,并将活动视图向内和向外交换

如果您以模态方式呈现视图控制器,则应该使用委托模式,并在希望视图控制器消失时,让“父”视图控制器以模态方式将其关闭

我在这里给出的答案是:

与您需要的代码非常接近,但您可能只希望使用更简单的委托协议,如:

@protocol FooViewControllerDelegate <NSObject>
- (void)fooViewControllerDidFinish:(FooViewController*)fooViewController;
@end
@protocol-FooViewControllerDelegate
-(void)FooViewControllerdFinish:(FooViewController*)FooViewController;
@结束

为什么要破坏webView?为什么不在每次显示webView时设置它的URL呢?用户很可能会访问webView一次,如果有的话。如果他真的去了那个里然后离开了,我想摆脱webView,这样可以节省内存并避免崩溃。关于命名ViewController,你们是对的。借用代码,然后不实现我的命名方案,在这种命名方案下它将是vcWeb,这对我来说是正确的。至于解除模态vc,它调用以下代码:[self.parentViewController解除模态vc控制器:否];我只是不知道“dismissModal”并不意味着“销毁并从记忆中删除”。
@protocol FooViewControllerDelegate <NSObject>
- (void)fooViewControllerDidFinish:(FooViewController*)fooViewController;
@end