Загрузка и ожидание iPhone SubView - PullRequest
0 голосов
/ 11 июля 2011

Приложение «Мой iPhone» имеет дополнительный вид на своем контроллере «Добро пожаловать».Подпросмотр разбирает данные с веб-сайта и загружает данные соответственно.Welcome View Controller имеет кнопку продолжения, чтобы перейти к следующему представлению контроллера.Но пока вспомогательное представление не загрузит свои данные, я не могу перейти к следующему контроллеру представления.

Может кто-нибудь предложить мне какое-либо решение по этому вопросу.Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 11 июля 2011

Если вы используете NSURLConnection / NSURLRequest для извлечения данных, я бы предложил два подхода:

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

  2. выполнить запрос в отдельном потоке;Вы можете сделать это, используя NSTask или GCD dispatch_asinc, как показано ниже;в любом случае, в этом случае вы должны знать, что ваш отдельный поток не может изменять пользовательский интерфейс (т. е. использовать UIKit), потому что это может быть сделано только из основного потока.Итак, в вашем потоке вы обновляете данные, но затем запускаете обновление пользовательского интерфейса в главном потоке (используя performSelectorOnMainThread).

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{ [self SENDREQUEST]; });
    
0 голосов
/ 11 июля 2011

Как указал Винс, вы должны извлечь данные из отдельного потока (создайте рабочий класс для вас). Когда классы заканчивают свою работу, вы должны сообщить представлению Welcome, что данные готовы. Вы можете достичь этого, используя протокол или NSNotification.

...