さて、この質問全体を入力してから、なんとか削除しました。はぁ。とにかく、私がどこでも検索し、キーボードに頭をぶつけて、これを理解できないという標準的な開示。
ユーティリティ アプリケーション テンプレート (MainViewController と FlipsideViewController を使用) に基づいて基本的なアプリを構築しています。補足: このスキームでの MainView と FlipsideView の目的をまだ理解していないので、誰かがそれを説明できれば、それほどひどいことにはなりません:D
とにかく、これらのビューの両方の下部にツールバーが必要です。IB を使用して特定のビューにそれを追加するのは簡単でしたが、2 つのビュー間で状態の一貫性を維持したいので、ツールバーに独自のコントローラーとモデルを持たせたいと考えています。したがって、ペン先からそのビューをロードしたいのですが、何か間違っているようです。私はここでアドバイスに従いました: NSViewController と Nib からの複数のサブビューですが、明らかにそれを壊してしまったので、より多くの洞察をいただければ幸いです。
私は次のことを行いました: 基本的に空ですが、ToolBar.xib のファイル所有者である ToolBarViewController を作成しました。ToolBar.xib 内には、ツールバーのサイズのフレームとその中にツールバーがあるビューがあります。MainView.xib には、以下のコードにある toolBarView に接続されている同じサイズのビュー要素があります...
MainViewController.h で:
#import "ToolBarViewController.h"
@interface MainViewController : UIViewController <FlipsideViewControllerDelegate, MKMapViewDelegate> {
...
ToolBarViewController *toolBarViewController;
IBOutlet UIView *toolBarView;
}
...
@property(nonatomic, retain) ToolBarViewController *toolBarViewController;
@property(nonatomic, retain) IBOutlet UIView *toolBarView;
MainViewController.m で:
@synthesize toolBarViewController;
@synthesize toolBarView;
- (void)loadView
{
[super loadView];
toolBarViewController = [[ToolBarViewController alloc] initWithNibName:@"ToolBar" bundle:nil];
[[toolBarViewController view] setFrame:[toolBarView frame]];
[[self view] replaceSubview:toolBarView with:[toolBarViewController view]];
}
ビルドして実行すると、上記の最後の行で「UIView」が「replaceSubview:with」に応答しない可能性があるという警告が表示され、実行時に次の例外がスローされます: *** -[MainView replaceSubview:with:]: unrecognizedインスタンス 0x450c540 に送信されたセレクター
誰かが私が間違っていることを説明できますか? ありがとう!