2016-01-14 99 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僅適用於iOS 9.打開鏈接在iOS的8臺設備,它將與Safari瀏覽器作爲SFSafariController打開的iOS 8不存在,因爲蘋果現在認爲這樣做是不好的用戶體驗退出應用程序去外部鏈接。所以你可以打開Web視圖或Safari控制器中的鏈接。

+0

非常感謝您的幫助 –

+0

我得到一個錯誤,說這個代碼不兼容的指針類型發送'NSString *'參數的類型'NSURL * _Nonnull' –

+0

我糾正了 – Skywalker

相關問題