我正在尝试在窗口小部件上打开特定的视图控制器,但是无法打开它,我能够使用URL模式打开应用程序,但我想打开特定的视图控制器,我该如何执行此操作,以下是代码使用URL模式打开应用: @IBAction func open_app(_ sender: Any) { extensionContext?.open(URL(string: "open://")! , completionHandler: nil) } 在按钮上,我使用URL模式成功地操作应用程序.但是现在,我想在此点点击打开特定的视图控制器? 我该怎么办? 解决方案 根据您的要求,我创建了一个示例以使其正常工作. 1.首先在TodayViewController接口中,创建3个不同的UIButtons,并给出其 tag 值以唯一识别它们. 在这里我给出了标签 as:1, 2, 3 to First, Second and Third UIButton. 2.接下来,您需要编写代码以打开您的包含ap
以下是关于 swift3 的编程技术问答
Swift手动的第61页的Swift文档暗示使用where将可选绑定与正常条件一起连接.但是,当我这样做时,我有一个警告建议我用以下代码中的逗号代替where: if let geocodingError = error as? NSError where geocodingError.code == 2 解决方案 有两个条件的示例 if let x = y, let a = b, a == x && !x.isEmpty { 其他解决方案 在Swift 3中,此语法已更改. 什么是 if let x = y, a = b where a == x { 现在 if let x = y, let a = b, a == x { 理由是,if ... {的每个子句现在是一个独立的布尔测试. 请参阅xcode swift Evolution forlution提案有关此更改的更多信息. 其他解决方案 在Xcode 9 中
我是iOS开发的新手.在我的项目中,我在桌面上显示了一个练习效果. 响应在下面给出. "exerciseId" : 1, "exerciseName" : "Fitness Exercise", "exerciseFilePath" : "\/p\/pdf\/exercise_pdf\/fitness_exercise.pdf" 我需要在DidSelectRowatIndExpath的另一个视图中显示PDF. 我不知道如何显示PDF,以及要遵循的步骤以显示该PDF. 希望您了解我的问题.请帮助我如何做到这一点. 解决方案 为什么不使用 qlpreviewController " https://developer.apple.com/documentation/uikit/uidocumentInteractionController" rel =" nofollow noreferrer"> uidocumentInteractionContr
我已经成功地将PDF文件从URL加载到Web视图.我想在触摸WebView后获得坐标,将其数据发送到服务器,以将一些文本添加到服务器端的该位置.问题是当WebView放大或滚动到第2,3页时,我如何获得坐标. 您能帮我解决Swift 3 中的问题吗 这里代码 class ViewController: UIViewController, UITextFieldDelegate, UIGestureRecognizerDelegate, UIWebViewDelegate { @IBOutlet var imageView: UIImageView! @IBOutlet var webView: UIWebView! override func viewDidLoad() { super.viewDidLoad() let url = URL(string: "http://www.pdf995.com/samples
我的WebView有一个小问题.这就是我在应用程序中所做的: import UIKit import WebKit class ViewController: UIViewController, WKNavigationDelegate { @IBOutlet var webView: WKWebView! // draged from storyboard override func viewDidLoad() { super.viewDidLoad() var urlToLoad : (String) urlToLoad = "http://wwww.myapp.com" webView.sizeToFit() webView.isUserInteractionEnabled = true let url = URL(string: urlToLoad) let request = URLRequest(u
默认情况下,WEBRTC视频使用前置摄像头,该摄像头正常.但是,我需要将其切换到后相机,并且我找不到任何代码来做到这一点. 我需要编辑哪一部分? 是LocalView,LocalVideOtrack还是Capturer? 解决方案 Swift 3.0 对等连接可以只有一个用于发送视频流的" rtcvideotrack". 首先,对于更改摄像头/后部,您必须删除当前的视频跟踪对等连接. 之后,您在需要的相机上创建新的" rtcvideotrack",并将其设置为同行连接. 我使用了此方法. func swapCameraToFront() { let localStream: RTCMediaStream? = peerConnection?.localStreams.first as? RTCMediaStream localStream?.removeVideoTrack(localStream?.videoTracks.first as
我想知道是否有一种简单的方法(或至少是一种方法)来找出程序中保留周期存在的位置.另外,如果我知道这些保留周期存在的位置,取决于它们的类型(例如变量或闭合),则如何使它们变得虚弱.我需要用自我(我的GamesScene)停止所有保留周期,以便当我不再需要它并且想重新启动它时进行交易. 任何提示,建议,答案和反馈都将不胜感激(提供特定的代码和示例将是首选).谢谢. 编辑: @扫除机的答案就是我想要的.如果您遇到同样的问题,他的答案会有所帮助.谢谢@Sweeper! 解决方案 如果您使用的是Xcode 8或更高版本,则可以使用内存图来查看哪个对象保存对什么对象的引用. 要查看内存图,首先构建并使用Xcode运行您的应用程序.当您想检查您创建的所有实例是否正确丢弃时,请转到左窗格上的此选项卡: 然后按右侧的按钮: 之后,选择最底部的选项 - 查看内存图层次结构: 现在它将向您显示内存中的所有对象: 就我而言,我有一个GameSystem对象,6
在迁移到Swift 3之前,我有以下代码: //Set up singleton object for the tracker class func setup(tid: String) -> WatchGATracker { struct Static { static var onceToken: dispatch_once_t = 0 } dispatch_once(&Static.onceToken) { _analyticsTracker = WatchGATracker(tid: tid) } return _analyticsTracker } 我有以下错误: 'dispatch_once_t' is unavailable in Swift: Use lazily initialized globals instead 显然,转换工具将代码转换为: class func s
这是代码,但是由于某种原因,我从观看中阅读时会得到nil.知道我想念什么? iOS方法写作 @IBAction func writeDefaults(_ sender: Any) { UserDefaults(suiteName: "group.testingGroups")!.set(true, forKey: "myKey") } 从Watchos阅读 @IBAction func readDefaults() { let readKey = UserDefaults(suiteName: "group.testingGroups")!.bool(forKey: "myKey") print("Key Value: \(readKey)") } 我在阅读时也尝试了以下内容,但什么也没有... let readKey = UserDefaults.init(suiteName: "group.testingGroups")!.
我有此代码: DispatchQueue.global(priority: DispatchQueue.GlobalQueuePriority.default).async { let url = URL(string: itemImageURL ) let data = try? Data(contentsOf: url!) if data != nil { DispatchQueue.main.async{ cell.advImage!.image = UIImage(data: data!) } } } 我在Swift 3中得到此警告: '默认值'在iOS 8.0中弃用:使用QoS属性
我使用Callkit开发VoIP应用程序. 如果用户接收两个来电,并且他/她接受其中一个,则另一个将关闭. 例如,报告两个来电: reportInComingCall uuid: 70D506FB-6A9D-4111-8828-35DB8F330A26 reportInComingCall uuid: 129A6D67-AC6A-480E-BCD7-ED14F7961CE5 当用户接受其中一个时,我会从Callkit获得此操作: perform action: CXEndCallAction uuid: 129A6D67-AC6A-480E-BCD7-ED14F7961CE5 perform action: CXAnswerCallAction uuid: 70D506FB-6A9D-4111-8828-35DB8F330A26 问:是否可以接受一个呼叫而不会关闭另一个电话? 最后我需要以下情况: 当我接受一个打电话时,另一个呼叫一直搁
正如我在此问题中,我正在尝试通过从表观视图中的UISWitch到另一个ViewController的数据.但是,我希望当忽略设置视图(包含UISWitch)时传递数据.遵循这一伟大答案的第三步解散设置视图时的UserDefault值. 要在用户默认值更改时进行更新,您可以在解散时会在设置控制器上发布通知.然后,您的应用程序中的其他VC可以收听此通知并根据需要进行更新. 我已经尝试在ViewDidload中检索通知,但是该值不会刷新,因为删除设置视图并非每次都不会加载新的ViewController. 每次忽略设置视图时,如何接收/阅读通知?更确切地说,我将在哪里以及如何编写读取通知的代码? 这是发布通知的代码: class SettingsViewController: UIViewController { @IBAction func doneButton(_ sender: UIButton) { self.dismiss(animated:
我想知道如何从" didSelectItemat-方法"中呈现一个新的视图控制器 请注意,UiviewController不是一个子类,因此我无法访问NavigationController来显示视图控制器. class FeedCell: UICollectionViewCell, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout { let cellId = "cellId" lazy var collectionView: UICollectionView = { let layout = UICollectionViewFlowLayout() let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
我正在开发一个带有10个视图控制器的应用程序,包括2个WebView控制器.每个视图控制器在右上都包含一个"发送反馈"按钮,并具有完全相同的样式和功能. 现在,我在每个视图控制器中为按钮编写完全相同的代码. 我想知道是否有一种方法仅在一个位置编写该方法并将其用于所有按钮,因为该功能相同. 我正在使用Swift 3. 解决方案 创建视图控制器的新子类: class SendFeedbackViewController: UIViewController { @IBOutlet weak var sendFeedbackButton: UIButton! @IBAction func sendFeedback() { /* do whatever you need */ } } 然后从此新视图控制器子类子类别: class YourViewController: SendFeedbackViewController {
xcode 8编译时说要用标识符更改实例viewcontroller,简单地,实例化视图控制器.我这样做了,为什么会出现两个错误? 我正在与Swift 3合作.我想编程更改页面.我读了许多其他有关该主题的问题.所有人都使用标识符使用实例化视图控制器.他们没有采用新语言. @IBAction func switchPage(_ sender: UIButton) { let storyboard = UIStoryboard(name: "Main", bundle: nil) let viewController = storyboard.instantiateViewController("secondViewController") as! UIViewController self.presentViewController(secondViewController, animated: true, completion: nil)
我目前正在学习Swift,并且正在尝试从故事板工作中了解实例,但是我现在面临的错误并没有得到太多记录. 我在主故事板上创建了一个ViewController,我将其指定为自定义类,我以前称为 simpleenewsviewController ,这是我的类的代码,它是''复杂: class SimpleNewsViewController: UIViewController { @IBOutlet weak var myImage: UIImageView! @IBOutlet weak var myLabel: UILabel! @IBOutlet weak var myText: UITextView! var event: Events! override func viewDidLoad() { super.viewDidLoad() } } 在我的主故事板上,这是我指定的自定义viewController: 我的故事板实施 现在是问题:
我已经以编程方式创建了一个堆栈视图,并且我添加了一个我也以编程方式创建的视图.但是,当我尝试添加第二视图时,它不起作用. 这是我的代码: @IBOutlet weak var codingScrollView: UIView! let codeStackView = UIStackView() var codeViews = [CodeView]() let codeView1 = CodeView(name: "Lennart", date: "13/05/2002", code: "Just some code") let codeView2 = CodeView(name: "Nina", date: "01/07/1999", code: "Also some code") CodingsCrollView是我添加到UISCrollView的ContentView. CodeStackView是我之前描述的 CodeViews数组被用来将视图添加到stackView.
我正在尝试通过编程设置/或更改嵌入式视图控制器 控制器视图. 我有3个不同的视图控制器,我想在容器视图中显示,所有这些都取决于用户是否登录. 我环顾四周,尝试了一堆代码,我发现了一个有效的代码,但是代码改变了自我视图,而不是视图容器视图. 我尝试过的许多代码也没有进入Swift 3,因此作为一个新的应用程序开发人员,这是很大的压力,因为我试图将其转换为Swift 3. 任何人都可以提供一个解决方案,以更改视图容器内的嵌入式视图控制器吗?谢谢. 解决方案 我可能已经找到了解决方案.我在这里回答,以防万一它可以帮助我的其他人. 我所做的是添加一个新的视图控制器,然后将其嵌入到视图容器 - 这将作为"主视图"工作 - 然后我使用此空白查看控制器来确定应该在空白的自我中更改哪个其他视图控制器. 这是我在空白视图控制器中的一些代码,但是我想空白视图控制器也可以用作主视图控制器(在我的情况下为"帐户"),然后可以添加登录/寄存器视图小时候. over
我已经使用以下实现来播放服务器中cookie内容的视频,但它显示了带有跨线的播放图标.我已经参考 link Swift实施.但是我没有得到任何输出:( func showVideo(url: String) { let videoURL = NSURL(string: url) var cookiesArray = [HTTPCookie]() guard let cookieArray = UserDefaults.standard.array(forKey: Constants.Object.kCookie) as? [[HTTPCookiePropertyKey: Any]] else { return } for cookieProperties in cookieArray { if let cookie = HTTPCookie(properties: cookieProperties) { cookiesArray.a