继承UIViewController类和XIB

时间:2011-12-28 15:14:34

标签: iphone objective-c ios uiviewcontroller

我正在开发一个iOS 4应用程序,我已经开发了一些我想在其他项目中使用的类。

其中一个名为MapViewController的类是UIViewController子类。此类使用我使用界面构建器创建的XIB文件。

我想知道在另一个项目中使用MapViewController作为新类的超类,如何使用它与XIB相关联?

我想重用MapViewController及其XIB,但我不知道是否必须对XIB文件做一些特别的事情。

我不知道如何解释这一点。如果您需要更多详细信息,请告诉我。

更新

我想创建一个继承自MapViewController的新类,如下所示:

...
@interface NewMapViewController : MapViewController {

...

而且,现在如果我想继续使用相同的XIB(来自MapViewController的那个),我该怎么办?

1 个答案:

答案 0 :(得分:6)

由于你将继承MapViewController,你的MapViewController将成为超级班级。而且你还有MapViewController.xib。如果您使用NewMapViewController

的初始化程序,对我来说似乎非常简单

<强> NewMapViewController.m

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    NSLog(@"Subclass initWithNibName called");
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

初始化NewMapViewContoller,如:

//Nib of super class is MapViewController
NewMapViewController *nmapController = [[NewMapViewController alloc] initWithNibName:@"MapViewController" bundle:[NSBundle mainBundle]];