0

別のセグエが終了したときにセグエを正しく呼び出すことができないのはなぜですか? 私のコードが間違っているか、呼び出すことができないと思いますか?

- (IBAction)optionTapped
{
    if (greeting)
        {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alerta!" message:@"something.." delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
            [alert show];
            [self performSegueWithIdentifier:@"firstSegue" sender:itemToSent];
            greeting = NO;
        }
    else
        {
            [self performSegueWithIdentifier:@"anotherSegue" sender:nil];
        }
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"anotherSegue"]) {
        UIViewController *viewController = segue.destinationViewController;
        OptionsViewController *controller = (OptionsViewController *)viewController;
        controller.delegate = self;
    } else if ([segue.identifier isEqualToString:@"firstSegue"]) {
        UINavigationController *navigationController = segue.destinationViewController;
        CCGetViewController *controller = (CCGetViewController *)navigationController.topViewController;
        controller.delegate = self;
        controller.itemToSent = sender;
    }

- (void)firstSegueViewController:(CCGetViewController *)controller didFinishAddItem:(InfoListItems *)item
{
    itemToSent = item;
    [self dismissViewControllerAnimated:YES completion:nil];
    if (scanTap) {
        [self scanTapped];
    } else if(infoTap){
        [self optionTapped];
    }
}

もう1つ、「firstSegue」はNavigationControllerに埋め込まれており、「anotherSegue」は単なるビューコントローラーです。

4

1 に答える 1

1

何度もセグエを動かそうとしましたが、やはり失敗しました。

そこで、1セグエと2セグエの間隔を1秒に設定してみました。

ss

これはうまくいきます!赤いウィンドウでボタンを押すと、緑のウィンドウが表示され、その後、自動的に青いウィンドウが表示されます。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    [self performSelector:@selector(segue) withObject:nil afterDelay:1.0];
}

- (void)segue
{
    [self performSegueWithIdentifier:@"toBlue" sender:self];
}

サンプル プロジェクトをダウンロードして実行できます。

https://github.com/weed/p120812_DoubleSegue

于 2012-08-12T04:44:02.400 に答える