代码之家  ›  专栏  ›  技术社区  ›  Moshe

是否有方法强制UIView释放子视图?

  •  0
  • Moshe  · 技术社区  · 14 年前

    假设我将UIViewController传递给UINavigationController,如下所示:

    SettingsViewController *settingsRootView = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil];
        SettingsNavigationController *settingsView = [[SettingsNavigationController alloc] initWithRootViewController:settingsRootView];   
        [settingsRootView release]; 
        [self presentModalViewController:settingsView animated:YES];
        [settingsView release];
    

    我在原来的UIViewController上释放了保留, settingsRootView ,但是 settingsView 在上面有一个保留物。当我解雇 设置视图 ,它应该释放自己和它所有的孩子,但出于某种原因,它不是。有没有办法告诉我的主应用程序视图 设置视图 迫使我的主视图释放 设置视图 所有的子视图呢?

    1 回复  |  直到 10 年前
        1
  •  0
  •   TomSwift    14 年前

    要强制settingsView释放它正在管理的任何控制器,请调用settingsView.viewControllers=nil。

    但当settingsView被释放时,这应该会自动发生。在setingsView的dealloc方法中放置一个断点,以确保它被释放。确保dealloc正在调用[super dealloc]。