Ho già trascorso 2 giorni interi a cercare di capire come utilizzare NSViewControllers per creare un'applicazione multiview.Navigazione applicazione multiview Coco OS Mac OS X
Ecco cosa faccio.
Sono presenti 2 controller di visualizzazione e la finestra di MainMenu.xib. Ho anche un AppController che è il delegato per entrambi i View Controller.
Quando avvio l'app, per prima cosa sono accolto con la vista della finestra di MainMenu.xib che contiene un pulsante. Facendo clic su questo pulsante, IBAction viene inviato a appController e chiede al SecondViewController di visualizzarlo. Finora, tutto è a posto e il file del pennino viene visualizzato correttamente.
Sul secondViewController, c'è un altro pulsante che invia un'altra IBAction al AppController e chiede la FirstViewController da visualizzare, ma non succede nulla, nessun incidente, nessun avviso ... Qualsiasi aiuto sarebbe molto apprezzato ... Grazie in anticipo per la vostra pazienza ...
Ecco il codice per l'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
e qui è il codice per l'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
Bene, chiunque può aiutarmi, ho solo bisogno di un'applicazione a vista singola che visualizza un primo ViewController con un pulsante sulla prima viewController che mi porta a un secondo controller di vista con un secondo pulsante che mi riporta al mio primo viewcontroller ... Ho già trascorso più di una settimana su questo ... invano ... PS: Non voglio nessun pulsante sulla finestra mainMenu.xib né sulle schede.
Un motivo particolare per cui si desidera utilizzare un controller di visualizzazione (a parte forse essere utilizzato per utilizzarli in iOS)? Sembra un lavoro perfetto per una visualizzazione a schede. O anche solo scambiando le viste a livello di programmazione. – Monolo
OK, e hai controllato l'ovvio; l'azione non è collegata all'interno di Interface Builder? – trojanfoe
Waouh, almeno alcune risposte ... –