2011-12-28 15 views
6

私はiOS 4アプリケーションを開発しています。他のプロジェクトで使用したいクラスをいくつか開発しました。UIViewControllerクラスとXIBを継承

MapViewControllerと呼ばれるこのクラスの1つは、UIViewControllerサブクラスです。このクラスは、インターフェイスビルダーで作成したXIBファイルを使用します。

新しいクラスのスーパークラスとして別のプロジェクトでMapViewControllerを使用するのでしょうか。どうすれば関連するXIBを使用できますか?

は私がMapViewControllerとそのXIBを再利用したいが、私はXIBファイルと特別な何かをする必要があるかどうかは知りません。

これを説明する方法はわかりません。詳細が必要な場合は教えてください。

UPDATE:今私は同じXIB(から1を引き続き使用したい場合は、

... 
@interface NewMapViewController : MapViewController { 

... 

そして:

が、私はこのように、MapViewControllerから継承する新しいクラスを作成したいですMapViewController)、どうすればよいですか?

+0

:あなたのようなあなたのNewMapViewContollerを初期化し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; } 

のための初期化子を使用する場合、それは私には非常に簡単と思われますあなたのMapViewControllerとXIBを使用することができますが、特別な動作が必要な場合はXIBを使用したくないのですか? – Peres

+0

正確な問題が何であるかは不明です。 – Max

+1

申し訳ありません。私はちょうど詳細で私の質問を更新しました。 – VansFannel

答えて

6

MapViewControllerから継承する予定なので、MapViewControllerはスーパークラスになります。 MapViewController.xibもあります。あなたがなりたい、私は理解してみましょう

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

いいえ、そうではありません。私は試した。実際、initWithNibNameは決して呼び出されません。 –

+0

@JimThio私は自分の答えを編集しました。私はこれを試して、それは私のために働く。試してみてください。 – MadhavanRP

+0

iOS 9.2で働いてくれてありがとう! – webo80