Хорошо, я просто напечатал весь этот вопрос, а затем сумел удалить его. Вздох. Во всяком случае, стандартное раскрытие, которое я искал повсюду, ударилось головой о клавиатуру и не может понять это.
Я создаю базовое приложение на основе шаблона служебного приложения (с MainViewController и FlipsideViewController). Примечание: я все еще не понимаю назначение MainView и FlipsideView в этой схеме, поэтому, если кто-то может объяснить это, это не будет слишком ужасно: D
В любом случае, в нижней части обоих этих видов я хочу иметь панель инструментов. Было достаточно легко добавить это к данному представлению с помощью IB, но я хочу, чтобы панель инструментов имела свой собственный контроллер и модель, потому что я хочу, чтобы ее состояние было согласованным для двух представлений. Соответственно, я хотел бы загрузить это представление из пера, но кажется, что я делаю что-то не так. Я следовал этому совету: NSViewController и несколько подпредставлений с Nib , но, очевидно, его не хватало, чтобы было лучше понять.
Я сделал следующие вещи:
Я создал ToolBarViewController, который в основном пуст, но является владельцем файла ToolBar.xib. Внутри 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:]: нераспознанный селектор отправлен в экземпляр 0x450c540
Может кто-нибудь объяснить, что я делаю не так? Спасибо! А