2016-01-14 2 views
0

Технология: Objective-C, Xcode 7Можно ли добавить гиперссылку на UIAlertController?

@property (nonatomic, copy) NSString *notes; 
@synthesize notes; 

example.notes = @"Click <a href='http://www.google.com'>here</a>"; 

NSString *msg = [@"" stringByAppendingFormat:@"%@", myAnnotation.notes]; 

UIAlertController *alertViewController = [UIAlertController alertControllerWithTitle: @"Title of Alert Box" message: msg preferredStyle: UIAlertControllerStyleAlert]; 
[alertViewController addAction: [UIAlertAction actionWithTitle: @"Close" style: UIAlertActionStyleCancel handler: nil]]; 
[self presentViewController: alertViewController animated: YES completion: nil]; 

Попытка получить ссылку появится в окне предупреждения, но, не имея никакой удачи. Просто выводит как обычный текст.

Возможно ли это? Если это так, используя мой пример выше, как вы его реализуете?

+0

Нет, невозможно. 'UIAlertController' поддерживает только обычный текст. – rmaddy

+0

Что такое 'NSString * msg = [@" "stringByAppendingFormat: @"% @ ", myAnnotation.notes];'? Почему бы не сделать 'NSString * msg = myAnnotation.notes;'? – rmaddy

+0

Это просто пример. Я добавляю больше уведомлений в поле предупреждения, поэтому мне нужно добавить его. –

ответ

2

Просто так.

UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Alert Title" 
           message:msg 
           preferredStyle:UIAlertControllerStyleAlert]; 
UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"GO" 
            style:UIAlertActionStyleDefault  
            handler:^(UIAlertAction * action) 
{ 
    NSString *urlString = @"someurl.com"; 
    NSURL *url = [NSURL URLWithString:urlString]; 
    if (NSClassFromString(@"SFSafariViewController")) 
    { 
     SFSafariViewController *safariViewController = [[SFSafariViewController alloc]initWithURL:url]; 
     safariViewController.delegate = self; 
     [self presentViewController:safariViewController animated:YES completion:nil]; 
    } 
    else 
    { 
     if ([[UIApplication sharedApplication] canOpenURL:url]) 
     { 
      [[UIApplication sharedApplication] openURL:url]; 
     } 
    } 
}]; 
[alert addAction:defaultAction]; 
[self presentViewController:alert animated:YES completion:nil]; 

Я добавил код для открытия ссылки в SFSafariController только прошивку 9. В IOS 8 устройств, она будет открыта с сафари браузером как SFSafariController не существует в прошивке 8. Это сделано потому, что яблоко в настоящее время рассматривает его плохой пользовательский интерфейс, чтобы выйти из приложения, чтобы перейти на внешние ссылки. Таким образом, вы можете открывать ссылки в веб-представлении или Safari Controller.

+0

большое спасибо за вашу помощь –

+0

Я получаю сообщение об ошибке с этим кодом, который говорит, что типы несовместимых указателей отправляют 'NSString *' в параметр типа 'NSURL * _Nonnull' –

+0

i исправлено, что – Skywalker

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