2015-10-31 3 views
0

Какой код для PopoverController в iOS 9 имеет правильный код для этого кода?Каков правильный код для UIPopoverController


@IBAction FUNC доля (отправитель: UIBarButtonItem) {

let activityViewController = UIActivityViewController (
     activityItems: [(webview.request?.URL!.absoluteString)! as NSString], 
     applicationActivities: nil) 

    if UIDevice.currentDevice().userInterfaceIdiom == .Pad { 
     //iPad 

     let activityPopover = UIPopoverController(contentViewController: activityViewController) 
     activityPopover.presentPopoverFromBarButtonItem(self.shareButton, permittedArrowDirections: UIPopoverArrowDirection.Any, animated: true) 
    } 
    else 
    { 
     //iPhone 
     presentViewController(activityViewController, animated: true, completion: nil) 

    } 
} 

}

ответ

1

Ваш код древний. Вы должны выбросить все это. В iOS 8 и iOS 9 адаптируются представленные контроллеры. UIActivityViewController уже является popover на iPad, автоматически. Просто представьте это, и все будет правильно.

Конечно, вам нужно будет снабдить его sourceView и sourceRect или источником информации о стержне. В противном случае вы столкнетесь с iPad. Но это касается любого popover, поэтому вы не можете удивиться этому.

+1

Пример кода из моей книги: https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch13p635activityView/ch26p901activityView/ViewController.swift – matt