Tag: swift

在保持TabBar的同时在AppDelagate中打开ViewController

在我的Xcode项目中,当用户点击通知时,我想先将它们发送到tabBar中的某个项目,然后我想实例化一个视图控制器并将对象发送到该视图控制器。 我有代码将它们发送到我想要的tabBar,但我不知道如何将它们实例化到视图控制器,同时保持TabBar和导航栏连接到视图控制器。 所有的答案都需要你改变根视图控制器,这使得当视图控制器被调用时,我失去了与我的tabBar和导航栏的连接。 一个真实生活的例子:用户收到Instagram通知说:“约翰开始关注你” – >用户点击通知 – > Instagram打开并显示通知选项卡 – >快速发送用户到“约翰”configuration文件,当用户按下后退button,它将它们发送回通知选项卡 应该知道:为什么我要去某个选项卡首先是得到该选项卡的导航控制器,因为我要去的视图控制器没有。 这里是我的工作代码发送用户到“通知”选项卡(我添加了评论像Instagram示例更好的理解): if let tabbarController = self.window!.rootViewController as? UITabBarController { tabbarController.selectedViewController = tabbarController.viewControllers?[3] //goes to notifications tab if type == "follow" { //someone started following current user //send to user's profile and send the user's id so the app can find all the information […]

无论消防date如何,只要我加载我的应用程序,UILocalNotification总是显示出来

你好我是新来的迅速和IOS编程。 我已经设置了6个通知,根据一天中的时间,应该每天提醒用户6次。 警报正在运行,但由于某种原因,应用程序首次同时在通知中心内显示全部6条警报。 任何帮助将不胜感激。 这是AppDelegate.swift中的代码 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. let notificationTypes : UIUserNotificationType = UIUserNotificationType.Alert | UIUserNotificationType.Badge let notificationSetting : UIUserNotificationSettings = UIUserNotificationSettings(forTypes: notificationTypes, categories: nil) UIApplication.sharedApplication().registerUserNotificationSettings(notificationSetting) return true } 这是我的六个不同通知的function func prayerAlert (prayerName : String, prayHour : Int, prayMinute : […]

拉伸和字距型,不能在带有@IBDesignable的Storyboard中工作

这是一个跟踪/拉伸字体的IBLabel 。 它在构build中完美地工作。 但是这个改变不会在Storyboard中显示。 // UILabel, but you can set // the tracking (that's the overall amount of space between all letters) // and streching (actually squeeze or stretch the letters horizontally) // Note: it's very common that typographers need you to adjust these. import UIKit @IBDesignable class StyledLabel: UILabel { @IBInspectable var tracking:CGFloat = […]

无法访问XCTestCase对象中的AppDelegate(或任何引用它的东西)

我试图在我的swift iOS应用程序上开始unit testing,但已经跑到总路障。 我似乎无法访问任何使用我的appDelegate。 我的appDelegate有一个UserController对象,它存储和pipe理login的用户和它的各种数据。 为了简化调用userController我创build了一个NSObject的自定义子类,这是我的所有模型类的子类。 它有它 let userController : UserController = (UIApplication.sharedApplication().delegate as! AppDelegate).userController 每当我尝试和testing一个子类化模型时,这行会导致一个SIGABRTexception。 无法将types“MyProject.AppDelegate”的值转换为“MyProjectionTests.AppDelegate”。 我试图从testing目标中删除AppDelegate,但是这样就给我AppDelegate是未定义的。 我已经尝试添加import MyProject到testing文件的顶部,但也没有工作。 我看到了另外两个解决scheme: 使应用程序委托function私人 – 我真的不喜欢做这样的事情。 如果我不得不为了testing而更改我的代码,那么testing的意义何在? 实现一个testing应用程序的委托,并使用它 – 如果我不testing项目中的什么,testing的重点又是什么。 有没有人有办法解决吗。 Swift的unit testing被certificate是令人头痛的事情,因为RSpec在rails上有多容易

Swift是否可以从一个轻量级的通用Objective-c类inheritance?

我有两个类,基类在Obj-c中,子类在Swift中。 Obj-c类使用新的XCode 7的轻量级通用特性,定义如下: @interface BaseController<T: SFObject *> : UIViewController @property(nonatomic, strong) T model; @end 这对Obj-c子类很好。 现在对于Swift,如果我像平常一样定义genericstypes,我会得到以下错误: 无法专门化非genericstypes“BaseObjcController”。 我的第二堂课定义如下: class SwiftController: BaseObjcController<SFUser> { } 任何帮助,将不胜感激。 谢谢。

为什么UIRefreshControl跳跃?

我尝试用swift 1.2来使用UIRefreshControl,除了用户界面以外,还能正常工作。 这是跳,我不知道为什么。 这是我在做什么: class ViewController: UIViewController { var refreshControl:UIRefreshControl! @IBOutlet weak var tableView: UITableView! override func viewDidLoad() { super.viewDidLoad() self.refreshControl = UIRefreshControl() self.refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh") self.refreshControl.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged) self.tableView.addSubview(refreshControl) } func refresh(sender:AnyObject) { // Code to refresh table view } } 你可以从这里下载我的POC项目 : POC项目 当你拉下tableView时,突然跳了一下。 有没有人知道为什么? 如果我使用UITableViewController,它工作正常,但我不想使用此UI对象。 我想在UIViewController中使用一个简单的UITableView。

在UISearchController的search栏上隐藏取消button

我试图隐藏在UISearchControllersearch栏的取消button,但不幸的是在viewDidLoad()中设置以下内容不起作用: override func viewDidLoad() { super.viewDidLoad() searchResultsTableController = UITableViewController() searchResultsTableController.tableView.delegate = self searchController = UISearchController(searchResultsController: searchResultsTableController) searchController.searchResultsUpdater = self searchController.searchBar.sizeToFit() searchResultsView.tableHeaderView = searchController.searchBar searchController.delegate = self searchController.dimsBackgroundDuringPresentation = false searchController.searchBar.delegate = self searchController.searchBar.searchBarStyle = .Minimal searchController.searchBar.showsCancelButton = false definesPresentationContext = true } 我也尝试在这个委托方法中使用上面的代码: func didPresentSearchController(searchController: UISearchController) { searchController.searchBar.showsCancelButton = false } 这种方法的工作原理,但隐藏它之前会显示取消button,这是不理想的。 有什么build议么?

在Swift 2.1中用MapKit添加不同的引脚颜色

我是Swift新手。 我试图在特定引脚上使用不同的颜色引脚或自定义引脚。 我的代码工作。 我有一个紫色的针,但我想在他们之间有所作为。 我该怎么做? 我认为有一些在MapView委托方法中做的事情,但我没有find它。 import UIKit import MapKit class MapsViewController: UIViewController , MKMapViewDelegate{ var shops: NSArray? { didSet{ self.loadMaps() } } @IBOutlet weak var map: MKMapView? override func viewDidLoad() { super.viewDidLoad() loadMaps() self.title = "Carte" self.map!.delegate = self } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. […]

Swift如果让评估成功可选(无)

我有一个名为Field的自定义对象。 我基本上用它来定义一个窗体中的单个字段。 class Field { var name: String var value: Any? // initializers here… } 当用户提交表单时,我validation每个Field对象以确保它们包含有效的值。 有些字段不是必需的,所以我有时故意将nil设置为value属性,如下所示: field.value = nil 这似乎是一个问题,当我使用if-let来确定一个字段是否为零。 if let value = field.value { // The field has a value, ignore it… } else { // Add field.name to the missing fields array. Later, show the // missing fields in a dialog. […]

parsing云 – LiveQueries – iOS客户端不起作用

我正在尝试使用Parse LiveQueries。 我使用这个parsing“Bootstrap”:“ https://github.com/parse-community/parse-server ”, 我可以看到日志: info: Create new client: 1 , 但我只是没有得到在查询中的更新,虽然我订阅了它。 它甚至没有达到subscription.handle的处理程序。 config.json : { "appId": "", "masterKey": "", "appName": "", "cloud": "./cloud/main", "databaseURI": "", "publicServerURL": "", // Relevant "startLiveQueryServer": true, "liveQuery": { "classNames": ["Channel"] }, } AppDelegate.swift : // Initialize Parse. let configuration = ParseClientConfiguration { $0.applicationId = self.PARSE_APP_ID $0.server = self.PARSE_SERVER […]