Segue не представляет представление на iOS7

#xcode #cocoa-touch #ios7 #segue

#xcode #cocoa-touch #ios7 #segue

Вопрос:

Я заметил странное поведение в iOS 7.x, в основном у меня есть «навигационный контроллер», который установил домашний адрес моего приложения как «контроллер rootview».

Кроме того, у меня есть другое представление, которое позволяет выбирать базу данных через «uitableview». После этого на главном экране начнется загрузка базы данных.

Когда приложение запускается, первое, что оно делает, это показывает страницу выбора базы данных. После этого в разных представлениях приложения есть кнопки, позволяющие отменить выбор базы данных.

Проблема в том, что это отлично работает на iOS 6.x, в то время как на iOS 7.x этого не происходит. Ниже я перечислю код, который я использую для этого, с соответствующими комментариями.

 -(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    if ( [bridge needJump] ) {//controllo il flag per forzare il salto alla schermata di scelta del db
        [self performSegueWithIdentifier:@"goSelDB" sender:self];
    }
    else
    {
        hud = [[MBProgressHUD alloc] initWithView:self.view];
        [self.view addSubview:hud];
        hud.delegate = self;

        if ([bridge firsStart])//controllo il flag del primo avvio
        {
            if([bridge checkNetwork])//
            {
                [self downloadDbWithUrl:[bridge getDBUrl] andDestinationName:@"ristorante.sqlite"];
            }
            else
            {
                [self fillField];

                UIAlertView *al=[[UIAlertView alloc] initWithTitle:@"Errore:" message:@"Per usare questa applicazione devi essere connesso a internet." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
                [al show];
            }
            [bridge setFirst:NO];
        }
        else
        {
            [self fillField];
        }
    }
}
  

Ответ №1:

Вы должны представить ViewController (выполнить segue) после появления его представления ViewController view . Выполните все действия в viewDidAppear: метод.