【发布时间】:2012-02-05 10:06:56
【问题描述】:
我在我的程序中使用 UINavigationController,当我位于导航堆栈中的第四个或第五个控制器时,程序收到内存警告并且我不能后退。我按下后退按钮,导航栏动画正在发生,但控制器没有被弹出,我仍然看到旧视图。谁能帮我解决这个问题?
我的子视图有属性:
@property (nonatomic,retain) UITableView *searchTableView;
@property (nonatomic,retain) UISegmentedControl *categorySegmentedControl;
@property (nonatomic,retain) UISearchBar *searchTableBar;
@property (nonatomic,retain) UIView *footerView;
@property (nonatomic,retain) UINavigationItem *navigationItem;
我的 viewDidUnload 方法
- (void)viewDidUnload
{
[super viewDidUnload];
self.searchTableView = nil;
self.categorySegmentedControl = nil;
self.searchTableBar = nil;
self.navigationItem = nil;
self.footerView = nil;
}
我的dealloc
-(void)dealloc
{
[super dealloc];
[searchTableView release];
[categorySegmentedControl release];
[searchTableBar release];
[navigationItem release];
[footerView release];
[currentValues release];
}
而且我注意到奇怪的规律性 - 只有当我从不带标签栏的视图移动到带标签栏的视图时才会出现此错误。
【问题讨论】:
-
您的 viewController 是否正确处理 viewDidLoad 和 viewDidUnload?
-
是的,我的 viewDidUnload 中有 self.myIBOtlet = nil
标签: iphone ios uinavigationcontroller