私は次のクラスを書きました:
.h
:
#import <Foundation/Foundation.h>
@class TDLPaneViewController;
@interface TDLSubViewController : NSObject
@property (nonatomic, strong) IBOutlet UIView* view;
@property (nonatomic, strong) TDLPaneViewController* paneViewController;
- (id) initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;
- (void)viewWillAppear:(BOOL)animated;
- (void)viewDidAppear:(BOOL)animated;
- (void)viewWillDisppear:(BOOL)animated;
- (void)viewDidDisppear:(BOOL)animated;
@end
.m
:
#import "TDLSubViewController.h"
@interface TDLSubViewController ()
{
UIView *view;
}
@property (nonatomic, strong) NSString* nibName;
@property (nonatomic, strong) NSBundle* nibBundle;
@end
@implementation TDLSubViewController
@synthesize paneViewController, view;
@synthesize nibName, nibBundle;
- (id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super init];
if (self)
{
self.nibName = nibNameOrNil;
self.nibBundle = nibBundleOrNil;
}
}
- (void)viewWillAppear:(BOOL)animated
{
NSLog(@"viewWillAppear:%i", animated);
}
- (void)viewDidAppear:(BOOL)animated
{
NSLog(@"viewDidAppear:%i", animated);
}
- (void)viewWillDisppear:(BOOL)animated
{
NSLog(@"viewWillDisppear:%i", animated);
}
- (void)viewDidDisppear:(BOOL)animated
{
NSLog(@"viewDidDisppear:%i", animated);
}
@end
別のビューを表示するとエラーが発生します:-(void)viewDidAppear:(BOOL)animated {[super viewDidAppear:animated];
TDLTestSubViewController* subView = [[TDLTestSubViewController alloc] initWithNibName:@"TDLTestSubViewController" bundle:nil] ;
[self pushSubViewController:nil animated:YES leftSide:YES];
}
TDLTestSubViewControllerは、TDLSubViewControllerの子クラスです。
TDLTestSubViewControllerの代わりにUIViewControllerを使用すると、すべてが正常に機能し、ARCをオフにしても問題ありません。したがって、問題はTDLSubViewControllerクラスにあると思います。何が悪いのか提案してください。