小编wtz*_*znc的帖子

AlertController不在窗口层次结构中

我刚刚用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,其视图不在窗口层次结构中!

我该怎么办?

storyboard uialertview ios swift uialertcontroller

40
推荐指数
4
解决办法
4万
查看次数

将最小二乘解返回到线性矩阵方程的函数

我必须将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)

python math numpy matrix swift

7
推荐指数
1
解决办法
1751
查看次数

如何向MKPointAnnotation添加按钮?

我只是试图在我的注释点添加一个细节按钮,不幸的是我不知道该怎么做.有人可以帮我吗?

下图显示了我想要实现的目标.谢谢!在此输入图像描述

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)

objective-c mapkit ios swift

5
推荐指数
1
解决办法
1万
查看次数

如何将.xib界面设置为自定义标注视图?

我刚刚用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)

xcode objective-c mapkit ios swift

5
推荐指数
1
解决办法
4341
查看次数

NSTimer选择器中的多个参数

我想将参数传递给以下函数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)

nstimer swift

2
推荐指数
1
解决办法
3790
查看次数