我刚刚用ViewController类创建了一个单视图应用程序项目.我想从一个位于我自己的类中的函数中显示一个UIAlertController.
这是我的班级提醒.
class AlertController: UIViewController {
func showAlert() {
var alert = UIAlertController(title: "abc", message: "def", preferredStyle: .Alert)
self.presentViewController(alert, animated: true, completion: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
这是执行警报的ViewController.
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func showAlertButton(sender: AnyObject) {
var alert = AlertController()
alert.showAlert()
}
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的,而不是美丽的警报.
警告:尝试在Sprint1.AlertController上显示UIAlertController:0x797d2d20:0x797cc500,其视图不在窗口层次结构中!
我该怎么办?
我必须将Python中的代码重写为Swift,但我仍然坚持使用函数,该函数应该将最小二乘解返回到线性矩阵方程.你们中有谁知道一个用Swift编写的库,它有一个等效的方法numpy.linalg.lstsq吗?我很感激你的帮助.
Python代码:
a = numpy.array([[p2.x-p1.x,p2.y-p1.y],[p4.x-p3.x,p4.y-p3.y],[p4.x-p2.x,p4.y-p2.y],[p3.x-p1.x,p3.y-p1.y]])
b = numpy.array([number1,number2,number3,number4])
res = numpy.linalg.lstsq(a,b)
result = [float(res[0][0]),float(res[0][1])]
return result
Run Code Online (Sandbox Code Playgroud)
到目前为止Swift代码:
var matrix1 = [[p2.x-p1.x, p2.y-p1.y],[p4.x-p3.x, p4.y-p3.y], [p4.x-p2.x, p4.y-p2.y], [p3.x-p1.x, p3.y-p1.y]]
var matrix2 = [number1, number2, number3, number4]
Run Code Online (Sandbox Code Playgroud) 我只是试图在我的注释点添加一个细节按钮,不幸的是我不知道该怎么做.有人可以帮我吗?
下图显示了我想要实现的目标.谢谢!
MapKitViewController:
import UIKit
import MapKit
import CoreLocation
class MapKitViewController: UIViewController, MKMapViewDelegate
{
let locationManager = CLLocationManager()
@IBOutlet weak var nmapView: MKMapView!
override func viewDidLoad()
{
super.viewDidLoad()
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
let location = CLLocationCoordinate2D(
latitude: 53.4265107,
longitude: 14.5520357)
let span = MKCoordinateSpanMake(0.05, 0.05)
let region = MKCoordinateRegion(center: location, span: span)
nmapView.setRegion(region, animated: true)
nmapView.showsPointsOfInterest = false
nmapView.showsUserLocation = true
displayMarkers()
}
func displayMarkers() -> Void
{
let jsonURL: NSURL = NSURL(string: "http://jsonstring.com/")!
var dataFromNetwork: NSData = NSData(contentsOfURL: jsonURL)!
let json …Run Code Online (Sandbox Code Playgroud) 我刚刚用GUI创建了CustomCallout.xib.我想将它用作我的注释的自定义标注,但我不知道应该在哪里设置要显示的视图以及如何将值传递给该视图.
我想要显示的标注视图如下所示.
这是我的自定义注释的代码.
class MapPin : MKPointAnnotation {
var name: String
var street: String
var type: String
var postCode: String
init(name: String, street: String, type: String, postCode: String) {
self.name = name
self.street = street
self.type = type
self.postCode = postCode
}}
Run Code Online (Sandbox Code Playgroud)
我的视图控制器:
import UIKit
import MapKit
class ViewController: UIViewController, MKMapViewDelegate {
@IBOutlet var mapView: MKMapView!
let span = MKCoordinateSpanMake(0.05, 0.05)
override func viewDidLoad() {
super.viewDidLoad()
self.mapView.delegate = self
let location = CLLocationCoordinate2D(
latitude: …Run Code Online (Sandbox Code Playgroud) 我想将参数传递给以下函数userInfo,因为该函数必须在延迟后执行.
func showAlert(alertTitle: String, withMessage alertMessage: String, fromController controller: UIViewController) {
//do stuff...
}
Run Code Online (Sandbox Code Playgroud)
已经做了延迟的那部分,但我不知道如何向身体发送多个参数 showAlert.
func fireTimer() {
timer = NSTimer.scheduledTimerWithTimeInterval(4, target: self, selector: Selector("showAlert:"), userInfo: nil, repeats: false)
}
Run Code Online (Sandbox Code Playgroud)
非常感谢您的协助.
我还在犯错,不知道为什么.
无法识别的选择器发送到实例
这就是我的代码的样子.怎么了?
class AlertController: UIAlertController {
var timer = NSTimer()
func showAlert(alertTitle: String, withMessage alertMessage: String, fromController controller: UIViewController)
{
var alert = UIAlertController(title: alertTitle, message: alertMessage, preferredStyle: .Alert)
controller.presentViewController(alert, animated: true, completion: nil)
}
func showAlert2(dict: [String: AnyObject])
{
showAlert(dict["title"] as! String,
withMessage: dict["message"] …Run Code Online (Sandbox Code Playgroud) swift ×5
ios ×3
mapkit ×2
objective-c ×2
math ×1
matrix ×1
nstimer ×1
numpy ×1
python ×1
storyboard ×1
uialertview ×1
xcode ×1