У меня есть начальный контроллер tableview, который выполняет проверку доступности. Это работает без проблем в пределах viewDidLoad
, однако Я хотел бы знать правильный путь к Повтор подключение до его передачи. Соответствующий код в моем файле реализации ниже, я попытался вставить [self ViewDidLoad]
, если соединение не работает, но это просто устанавливает приложение в цикл (возвращает сообщение об ошибке NSLog
) и не показывает UIAlertView
.Как я могу повторить тест по достижимости до тех пор, пока он не сработает
- (void)viewDidLoad
{
[super viewDidLoad];
if(![self connected])
{
// not connected
NSLog(@"The internet is down");
UIAlertView *connectionError = [[UIAlertView alloc] initWithTitle:@"Connection Error" message:@"There is no Internet Connection" delegate:self cancelButtonTitle:@"Retry" otherButtonTitles:nil, nil];
[connectionError show];
[self viewDidLoad];
} else
{
NSLog(@"Internet connection established");
UIButton *btn = [UIButton buttonWithType:UIButtonTypeInfoDark];
[btn addTarget:self action:@selector(infoButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:btn];
[self start];
}
}
Примечание: это код не ARC. Вы можете отметить, что файл не является ARC, добавив флагов компилятора -fno-objc-arc в разделе «Сборка фаз»> «Компиляция источников» вашей цели. – Jano
Привет, спасибо за ответ, рискуя быть очень толстым, где идет первый блок кода (в viewDidLoad?) – user2033055
Да, если вы хотите его для одного контроллера представления или в делете приложения (см. Обновленный ответ), если вы хотите его для всего приложения. Не стесняйтесь спрашивать, все это выглядело чуждо мне, когда я начал с Objective-C. – Jano