Я уже провел 2 полных дня, пытаясь выяснить, как использовать NSViewControllers для создания приложения с несколькими видами.Mac OS X Cocoa multiview application navigation
Вот что я делаю.
У меня есть 2 контроллера просмотра и окно MainMenu.xib. У меня также есть AppController, который является делегатом для обоих контроллеров View.
Когда я запускаю приложение, меня сначала приветствует вид окна MainMenu.xib, который содержит кнопку. При нажатии этой кнопки IBAction отправляется в appController и просит SecondViewController отображать его. Пока все в порядке, и файл nib отображается правильно.
На secondViewController, есть еще одна кнопка, которая посылает другой IBAction к AppController и просит для FirstViewController будет отображаться, но ничего не происходит, не аварии, не предупреждение ... Любая помощь будет высоко ценится ... Спасибо заранее за ваше терпение ...
Вот код AppController.h:
#import <Foundation/Foundation.h>
#import "SecondViewController.h"
#import "FirstViewController.h"
@interface AppController : NSObject
@property (strong) IBOutlet NSWindow *mainWindow;
@property (strong) IBOutlet SecondViewController *secondViewController;
@property (strong) IBOutlet FirstViewController *firstViewController;
- (IBAction)secondButtonfromsecondViewControllerClicked:(id)sender;
- (IBAction)buttonClicked:(id)sender;
@end
и вот код для AppController.m:
#import "AppController.h"
@implementation AppController
@synthesize mainWindow = mainwindow;
@synthesize secondViewController;
@synthesize firstViewController;
- (IBAction)buttonClicked:(id)sender {
NSLog(@"button from second View Controller clicked");
self.secondViewController = [[SecondViewController
alloc]initWithNibName:@"SecondViewController" bundle:nil];
self.mainWindow.contentView = self.secondViewController.view;
[self.secondViewController.view setAutoresizingMask:NSViewWidthSizable |
NSViewHeightSizable];
}
- (IBAction)secondButtonfromsecondViewControllerClicked:(id)sender {
NSLog(@"button from first ViewController clicked");
self.firstViewController = [[FirstViewController
alloc]initWithNibName:@"FirstViewController" bundle:nil];
self.mainWindow.contentView = [self.firstViewController view];
}
@end
Ну, кто-нибудь может мне помочь, мне просто нужно одно приложение просмотра, которое отображает первый ViewController с кнопкой на первом диспетчере viewController, который выводит меня на второй контроллер представления со второй кнопкой, которая возвращает меня к моему первому диспетчеру просмотра ... Я уже потратил больше недели на это ... зря ... PS: Я не хочу никакой кнопки в окне mainMenu.xib и вкладок.
Любая конкретная причина, по которой вы хотите использовать контроллер вида (кроме, возможно, использования их в iOS)? Это звучит как идеальная работа для просмотра табуляции. Или даже просто подменю взглядов программно. – Monolo
ОК, и вы проверили очевидное; действие не связано в Interface Builder? – trojanfoe
Вау, по крайней мере, некоторые ответы ... –