загрузить другой кончик, если телефон не подключен к интернету - PullRequest
2 голосов
/ 09 сентября 2011

Я использую класс Apple Reachability, и он работает нормально, используя предупреждение, чтобы сообщить пользователю, что соединение недоступно или соединение потеряно.Однако я хочу изменить оповещение на что-то более визуальное.Я хочу загрузить перо, которое сообщает пользователю, что активное соединение отсутствует, но перо не загружается.Я также попытался загрузить другие мои перья, но он также не загружает перо.

- (BOOL) checkNetworkStatus:(NSNotification *)notice
{
// called after network status changes

NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
switch (internetStatus)

{
    case NotReachable:
    {
        NSLog(@"The internet is down.");
        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"No Internet Connection" message:@"You are currently not connected to a WI-FI or cellular Data.\nPlease make sure you are connected." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
        [alert show];
        [alert release];

        //NoConnection *noConn = [[NoConnection alloc] initWithNibName:@"NoConnecton" bundle:nil];
        //[self presentModalViewController:noConn animated:NO];
        //[NoConnection release];

        self.isConnected = NO;
        return NO;
        break;

    }
    //more cases.........

часть оповещения работает нормально, а часть для загрузки кончика - нет.Вы можете сказать мне, что здесь не так?Я вызываю эту функцию в viewWillAppear.Спасибо!

Ответы [ 4 ]

0 голосов
/ 14 июля 2012

Вам необходимо использовать метод делегата для просмотра предупреждений

#pragma mark - AlertView Delegates

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if(alertView.tag == 1)
        {
            NoConnection *noConn = [[NoConnection alloc] initWithNibName:@"NoConnecton" bundle:nil];
            [self presentModalViewController:noConn animated:NO];
            [NoConnection release];
        }
}

не забудьте назначить значение тега alertView 1.

, а также не забудьте соответствовать протоколу UIAlertViewDelegate

Happy Coding:)

0 голосов
/ 09 сентября 2011

Код, который вы представили, должен работать, так как проблема должна быть где-то еще, вероятно, в nib - связывании, возможно, вы забыли связать что-то с файлом nib.попробуйте это

    [self.navigationController presentModalViewController:noConn animated:YES];  
0 голосов
/ 13 сентября 2011

Есть ли у вашего пера NoConnection в качестве владельца файла (я думаю, NoConnection является подклассом UIViewController, проверьте его. Я назову этот NoConnectionViewController ниже, потому что вы должны назвать его так, чтобы не было ошибки)?

Связано ли свойство представления владельца файла с графическим представлением? Проверь это.

Вы работаете без строки состояния в верхней части окна? Это может быть проблемой.

Вы находитесь внутри modalViewController? Если да, ваш код не будет работать, вместо этого вы должны использовать:

    NoConnectionViewController* nextWindow = [[NoConnectionViewController alloc]  initWithNibName:@"NoConnecton" bundle:nil];  // Check your nib name here, seems to be a mistake
    UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:nextWindow];
    [self presentModalViewController:navController animated:YES];
    [navController release];
    [nextWindow release];
0 голосов
/ 09 сентября 2011

Вы можете сделать следующее:

if ( ! isConnected )
{
    NoConnection *noConn = [[NoConnection alloc] initWithNibName:@"NoConnecton" bundle:nil];
    [self presentModalViewController:noConn animated:NO];
    [NoConnection release];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...