Domanda

Sto cercando di avere una diapositiva UIPickerView dalla parte inferiore dello schermo (sopra la parte superiore di una barra delle schede), ma non riesco a farlo vedere. Il codice effettivo per l'animazione viene da uno dei progetti di esempio di codice di Apple (DateCell). Chiamo questo codice dal controller prima vista (FirstViewController.m) sotto il controller barra delle schede.

- (IBAction)showModePicker:(id)sender {
if (self.modePicker.superview == nil) {
    [self.view.window addSubview:self.modePicker];

    // size up the picker view to our screen and compute the start/end frame origin for our slide up animation
    //
    // compute the start frame
    CGRect screenRect = [[UIScreen mainScreen] applicationFrame];
    CGSize pickerSize = [self.modePicker sizeThatFits:CGSizeZero];
    CGRect startRect = CGRectMake(0.0, screenRect.origin.y + screenRect.size.height, pickerSize.width, pickerSize.height);
    self.modePicker.frame = startRect;

    // compute the end frame
    CGRect pickerRect = CGRectMake(0.0, screenRect.origin.y + screenRect.size.height - pickerSize.height, pickerSize.width, pickerSize.height);

    // start the slide up animation
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3];

    // we need to perform some post operations after the animation is complete
    [UIView setAnimationDelegate:self];

    self.modePicker.frame = pickerRect;

    // shrink the vertical size to make room for the picker
    CGRect newFrame = self.view.frame;
    newFrame.size.height -= self.modePicker.frame.size.height;
    self.view.frame = newFrame;
    [UIView commitAnimations];

    // add the "Done" button to the nav bar
    self.navigationItem.rightBarButtonItem = self.doneButton;
}}

Ogni volta che questa azione incendi attraverso un'UIBarButtonItem che vive in un UINavigationBar (che è tutto sotto la FirstViewController) non succede nulla. Qualcuno può per favore offrire qualche consiglio?

È stato utile?

Soluzione

Risulta che avevo perso il fatto molto importante che l'UIPickerView era stato definito in Interface Builder così ... dopo averlo fatto e collegando il tutto all'uscita funziona!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top