NSPageViewController und Storyboard

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • NSPageViewController und Storyboard

    Hi,

    ich versuche mit Hilfe eines PageControllers eine Art Wizard zu bauen.
    Leider ist es so, dass er mir nach dem Laden aller ViewController, zuerst der zweite anzeigt wird, dann verhält sich das übereinanderlegen der controller auch ganz merkwürdig bis man alle mal durchgeswiped hat.

    Nach dem durchswipen werden alle richtig angezeigt, doch leider kann man keine Eingabe mehr in ein Textfied tätigen.

    Quellcode

    1. ​- (void)awakeFromNib {
    2. NSStoryboard *sb = [NSStoryboard storyboardWithName:@"Main" bundle:nil];
    3. NSViewController *vc0 = [sb instantiateControllerWithIdentifier:@"controller0"];
    4. NSViewController *vc1 = [sb instantiateControllerWithIdentifier:@"controller1"];
    5. NSViewController *vc2 = [sb instantiateControllerWithIdentifier:@"controller2"];
    6. NSViewController *vc3 = [sb instantiateControllerWithIdentifier:@"controller3"];
    7. _vcArray = @[ vc0, vc1, vc2, vc3 ];
    8. [self setDelegate:self];
    9. [self setArrangedObjects:_vcArray];
    10. [self setTransitionStyle:NSPageControllerTransitionStyleHorizontalStrip];
    11. }
    Alles anzeigen


    Quellcode

    1. ​- (void)pageController:(NSPageController *)pageController didTransitionToObject:(id)object {
    2. NSLog(@"pageController: didTransitionToObject:");
    3. }
    4. - (NSString *)pageController:(NSPageController *)pageController identifierForObject:(id)object {
    5. NSString *identifier = [[NSNumber numberWithInteger:[_vcArray indexOfObject:object]] stringValue];
    6. return identifier;
    7. }
    8. - (NSViewController *)pageController:(NSPageController *)pageController viewControllerForIdentifier:(NSString *)identifier {
    9. NSViewController *vController = [_vcArray objectAtIndex:[identifier integerValue]];
    10. [self addChildViewController:vController];
    11. [vController.view setFrame:self.view.frame];
    12. [vController.view setFrameOrigin:NSMakePoint(self.view.frame.origin.x, self.view.frame.origin.y)];
    13. [self.view addSubview:vController.view];
    14. return vController;
    15. }
    Alles anzeigen
    Dateien