я м в настоящее время работает в полный фрустраций, как я не могу найти какую-либо ошибку, но мои ActionSheet падает на IPad, но хорошо работает на iPhone здесь код действияSwift UIActionSheet падает на iPad?
if (view.annotation.title as String!) == "San Francisco" {
currentLat = 37.615223
currentLong = -122.389977
url = "www.google.de"
let action:UIActionSheet = UIActionSheet(title: "Change Map Type", delegate: self, cancelButtonTitle: "Back", destructiveButtonTitle: nil, otherButtonTitles: "Product Page", "Video")
action.showInView(self.view)
action.tag = 0
VideoID = "XXXXXX"
}
Так действие, которое должно быть обработано является
if actionSheet.tag == 0{
if buttonIndex == 1{ performSegueWithIdentifier("showShop", sender: self) }
if buttonIndex == 2{ UIApplication.sharedApplication().openURL(NSURL(string: "http://www.youtube.com/watch?v=\(youtubeVideoID)")) }
//if buttonIndex == 2{ performSegueWithIdentifier("showYoutube", sender: self) }
}
Youtube один работает отлично, на iPhone и IPad, то "showShop" делает работу штрафа на iPhone, но не на IPad
"showShop" SEGUE вперед к моему ViewControllerShopView, который выглядит как
import UIKit
class ViewControllerShopView: UIViewController {
/* ################################################## IBOutlets ################################################## */
@IBOutlet weak var activity3: UIActivityIndicatorView!
@IBOutlet weak var webView: UIWebView!
/* ################################################## viewDidLoad ################################################## */
override func viewDidLoad() {
super.viewDidLoad()
loadurl()
}
/* ################################################## didReceiveMemoryWarning ################################################## */
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
println("memory warning")
}
/* ################################################## viewWillAppear ################################################## */
override func viewWillAppear(animated: Bool) {
loadurl()
}
/* ################################################## loadurl funC################################################## */
func loadurl(){
var loadingurl = "google.com"
var homeurl = "google1.com"
loadingurl = url
let webviewURL = NSURL(string: loadingurl)
let request = NSURLRequest(URL: webviewURL)
webView.loadRequest(request)
}
/* ################################################## HomeButton ################################################## */
@IBAction func Reload(sender: AnyObject) {
var loadingurl = "google.com"
var homeurl = "google1.com"
loadingurl = url
let webviewURL = NSURL(string: loadingurl)
let request = NSURLRequest(URL: webviewURL)
webView.loadRequest(request)
}
/* ################################################## Activity Indicator ################################################## */
func webViewDidStartLoad(_ : UIWebView){activity3.startAnimating()}
func webViewDidFinishLoad(_ : UIWebView){activity3.stopAnimating()}
}
но Segue никогда не делался на iPad, он просто падает на Segue.
Кто-нибудь знает, что может быть неправильным?
на iOS8 + вы должны использовать 'UIActionController' вместо этого, 'UIActionSheet' и' UIAlertView' устарели, подробнее об этом здесь: https://developer.apple.com/library/IOs/documentation/UIKit/Reference/UIActionSheet_Class/index.html, однако вы не упомянули, какие версии iOS ... – holex
@holex как мой лист действий должен выглядеть как actioncontroller? –
они выглядят одинаково, потому что 'UIAlertController' является« объединенной »(или« объединенной », если хотите) версией« UIActionSheet »и« UIAlertView »в одном классе, поэтому конечный пользователь не будет определять разница, но под капотом (в вашем коде) вам нужно справиться с такой устаревшей ситуацией, если ваш проект поддерживает как iOS7, так и iO8. – holex