Popover вид появляется после того, как он был уволен / почему два segue были запущены одновременно - PullRequest
0 голосов
/ 19 февраля 2012

Я новичок в xcode, и я столкнулся с этой проблемой, и я не уверен, как ее исправить. У меня проблема в том, что у меня UIViewController, в котором есть комбинация popover segue, custom segue и контроллера навигации.
Пользователь нажимает на текстовое поле, и появляется всплывающее окно, и они могут выбрать город из всплывающего окна, и оно закрывается. Но если они нажимают на кнопку, которая выполняет пользовательский переход, всплывающее окно появляется снова.

Можно ли как-нибудь помешать поп-музыке снова выстрелить?

Вот как мой код

@interface ….
{
    UIPopoverController *popoverController; 
}
@property (strong) UIPopoverController *popoverController;

@end
@implementation …

@synthesize popoverController;


…
-(BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
{
    return YES;
}

-(void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
    self.popoverController = nil;
}

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    UIStoryboardPopoverSegue *storePopeOver;
    UIPopoverController *thePopover;
    UIViewController *ContentVC;

    if(self.popoverController)
    {
        [self.popoverController dismissPopoverAnimated:NO];
        self.popoverController = nil;
    }
    //Popover 
    if([segue.identifier isEqualToString:@"FindFrom"])
    {

        storePopeOver =(UIStoryboardPopoverSegue *)segue;
        thePopover = [storePopeOver popoverController];
        self.popoverController = thePopover;
        [segue.destinationViewController setDelegate:self];
        self.segueTyp = @"FROM";  

    }
//Custom segue
if([segue.identifier isEqualToString:@"TimeTable"])
    {
        [segue.destinationViewController setDelegate:self];
    }
}

//When the user clicks on the  textField performDegue
- (IBAction)FromTxtFieldBeginEdit:(UITextField *)sender {
    [self performSegueWithIdentifier:@"FindFlightsFrom" sender:self];
}

}

1 Ответ

0 голосов
/ 21 февраля 2012

Когда вы создавали сегменты, вы нажимали Ctrl + кнопку?Мне нравится перетаскивать из VC, таким образом они автоматически вызываются, и вы должны вызывать executeSegueWithIdentifier, чтобы произошел переход.

...