我正在尝试为我的Story Board标签栏控制器创建一个UITabBarControllerDelegate ...
#import <Foundation/Foundation.h>
@class CountryPickerViewController;
@interface TabBarDelegate : NSObject <UITabBarControllerDelegate>
@property (strong) CountryPickerViewController *countryPickerViewController;
- (void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;
@end
使用Interface Builder我创建了一个Object,然后将其指定为这样的委托:
当我切换到另一个标签时,会导致崩溃。这里发生了什么,我该如何解决?
编辑:顺便说一句,tabBarController:didSelectViewController:
的方法实现为空(不包含任何特定逻辑)
EDIT2 :我得到了不错的堆栈跟踪,我得到了:
和EXC_BAD_ACCESS
,我会假设Tab Bar Delegate
对象可能为零?为什么会这样呢?
EDIT3 :我启用了NSZombies并发现由于某种原因我在Interface Builder中创建的Object过早发布了吗?这是正常的吗?
2012-08-01 12:41:11.591 MyApp[15437:707] *** -[TabBarDelegate respondsToSelector:]: message sent to deallocated instance 0x194fe0
答案 0 :(得分:1)
不保留IBOutlets。您需要对标签栏委托的强引用,以便将其保持足够长的时间以供您的视图使用。现在它在视图加载后立即被释放。