2013-09-05 4 views
0

Я нахожусь на работе и не имею кода, чтобы передать его прямо сейчас, но опубликует его позже, просто хотел бы посмотреть, смогу ли я получить ответы до того, как вернусь домой.Выполнение segue только после выполнения условия

В принципе, у меня есть tableViewController (view1) с кнопкой на нем, которая нажимает на другой tableViewController (view2).

кнопка on view1 проверяет, доступна ли информация, необходимая для заполнения таблицы на view2. если это так, замечательно, можно выполнить segue; если это не так, данные сохраняются в фоновом режиме, а затем выполняется segue.

Это действительно работает, но проблема у меня есть для второго экземпляра, когда данные не были сохранены ранее, а затем сохраняет их, а затем выполняется прежде, чем все данные будут сохранены в фоновом режиме, поэтому таблица отображается только несколько записей. назад, а затем нажатие кнопки снова решает это, так как у данных было больше времени для сохранения, и поэтому таблица в представлении2 обновлена.

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

Надеюсь, это имеет смысл!

Я могу предоставить код позже.

любые предложения были бы замечательными.

благодаря

ответ

0

В этом случае вы должны создать SEGUE от первого контроллера табличного на второй. Затем, как только вы сохранили свои данные успешно, вы можете выполнить свой SEGUE как этот

[self performSegueWithIdentifier:@"segueId" sender:self]; 

Вы можете найти более подробную информацию здесь: How to perform a segue that is not related to user input in iOS 5?

+0

Но как я могу создать условие? Например, как мне закодировать, что я не хочу, чтобы segue выполнялся до тех пор, пока сохранение не будет закончено? –

+0

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

0
NSBlockOperation* performSeque = [NSBlockOperation blockOperatioWithBlock:^(){ 
    [self performSegueWithIdentifier:@"segueId" sender:self]; 
}]; 
[performSeque addDependency: [SaveOperation saveOperation]]; 
[[NSOperationQueue mainQueue] addOperation: performSeque]; 

ваше: seque будет выполнена, как только ваши Сохраним операция закончится ,

+0

Отлично, давайте это пойдем позже! Благодаря! –

+0

@NickFarrant, поэтому, если это решение сработало для вас, вы могли бы пометить мой ответ? –

+0

не получил шанс проверить, но обязательно отметит его, когда я это сделаю. благодаря –

Смежные вопросы