Создание обработки ошибок UIView Overlay - PullRequest
0 голосов
/ 02 февраля 2010

У меня есть контроллер панели вкладок внутри контроллера навигации. Я хочу создать представление с одним изображением 320x411 (оставляя строку состояния и панель вкладок).

Изображение показано для ошибки сетевого подключения.

В настоящее время я использую этот код в viewDidLoad отдельного представления элемента панели вкладок:

if (appDelegate.hasInternetAtStart == NO) {
    CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 480.0f);
    UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];
    [myImage setImage:[UIImage imageNamed:@"NetworkError.png"]];
    myImage.opaque = YES;
    [self.view pushViewController:myImage animated:NO];     
    [myImage release];
}

Однако это позволяет касаться следующих элементов и получать к ним доступ.

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

Мне бы хотелось одно представление, которое переопределит все другие представления в элементе панели вкладок и может быть установлено в App Delegate, если это возможно ...

1 Ответ

2 голосов
/ 08 февраля 2010

Вы пытались запустить UIImageView из приложения делегата?

Делая это, сделайте вид и ваше изображение размером всего экрана. При использовании прозрачного изображения в формате PNG ваша ошибка будет отображаться, не позволяя пользователю прикоснуться к панели вкладок NavController.

Если вы хотите вызвать это за пределами приложения «Делегат», вы можете использовать NSNotificationCenter для создания ответчика в приложении «Делегат» следующим образом.

// Register listener 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showNetworkError) name:@"showNetworkError" object:nil];

И назовите его из-за пределов приложения. Делитесь так:

// Post notification 
[[NSNotificationCenter defaultCenter] postNotificationName:@"showNetworkError" object:self];

Обратите внимание, что селектор "showNetworkError" - это имя функции, которая отображает ошибку UIImageView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...