2

我写了以下课程:

.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 的子类。

如果我使用 UIViewController 而不是 TDLTestSubViewController 一切正常,如果我关闭 ARC 也可以。所以我认为问题出在 TDLSubViewController 类中。请,建议什么可能是错的?

4

1 回答 1

5

您的方法在必须时initWithNibName:bundle:不会返回。self

于 2013-02-21T13:21:23.237 回答