小编Oli*_*cer的帖子

以编程方式在Swift中的选项卡之间切换

当iOS应用程序启动时,我需要编写一些代码来将视图切换到另一个选项卡(例如,默认情况下显示第二个选项卡而不是第一个选项卡).

我是Swift的新手,并且已经解决了以下问题:

  • 代码应该放在第一个选项卡的ViewController的override func viewDidLoad()函数中.

  • 以下代码显示了第二个ViewController,但没有显示底部的选项卡栏(vcOptions是第二个ViewController选项卡项:

let vc : AnyObject! = self.storyboard.instantiateViewControllerWithIdentifier("vcOptions")
self.showViewController(vc as UIViewController, sender: vc)
Run Code Online (Sandbox Code Playgroud)

我认为答案可能在于使用UITabbarController.selectedIndex = 1,但不太确定如何实现它.

xcode uitabbarcontroller viewcontroller ios swift

59
推荐指数
7
解决办法
9万
查看次数

使用Swift中的NSPredicate对CoreData结果进行排序

我目前正在Swift中编写一个简单的电话簿应用程序,需要对CoreData查询中的结果进行排序.

基本上,我设置了一个名为"Directory"的NSManagedObject,其中包含相应的字段名称 - 例如"name_f"是用户的名字.

查询的CoreData数据库中的名称按字母顺序排列.但是,尽管第一次搜索按字母顺序返回结果,但有时不会在程序的其他区域查询数据库之后进一步搜索.我不确定为什么会这样,但是想要放入代码来通过任何字段主动对返回的数组进行排序.

我返回NSManagedObject数组的代码如下:

func SearchName(nameToSearch: String) -> NSArray {
    let appDel:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
    let context:NSManagedObjectContext = appDel.managedObjectContext! //I added the !

    let request = NSFetchRequest(entityName: "Directory")
    request.returnsObjectsAsFaults = false      //will return the instance of the object

    //request.predicate = NSPredicate(format: "name_f = %@", nameToSearch)
    //request.predicate = NSPredicate(format: "name_f MATCHES '.*(\(nameToSearch)).*'")
    request.predicate = NSPredicate(format: "name_f MATCHES[cd] '(\(nameToSearch)).*'")
    var results:NSArray = context.executeFetchRequest(request, error: nil)
    return results
}
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我使用以下代码从返回的结果中提取特定值(其中searchResult是SearchName所在的类的实例):

    var particularEntry = self.searchResult[self.selectedItem] as Directory
    lblDetailName.text = thisPerson.name_f
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望能够:1 …

arrays search core-data nsmanagedobject swift

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

确定在Swift中自定义listView单元格中按下的按钮

我在Swift中为listView创建了一个自定义单元格.它上面有两个按钮 - 一个是"暂停"按钮,另一个是"停止"按钮.我们的想法是每个订单项代表一个下载,因此用户可以独立停止和启动每个订单项.

但是,我需要为每个按钮创建一个@IBAction.我已经在主ViewController中创建了这些,当然,当它们被连接起来时,它们会触发相应的.

我坚持的位是识别按下哪一行按钮的标识符.我假设与cellForRowAtIndexPath有关的东西可行.

我找到了以下代码(我从类似的文本字段问题中找到):

@IBAction func startOrPauseDownloadSingleFile(sender: UIButton!) {
    let pointInTable: CGPoint = sender.convertPoint(sender.bounds.origin, toView: self.tableView)
    let cellIndexPath = self.tableView.indexPathForRowAtPoint(pointInTable)
}
Run Code Online (Sandbox Code Playgroud)

但是我不断收到错误'无法使用类型的参数列表调用'convertPoint'(@lvalue CGPoint,toView:$ T6)'.

有人可以帮忙吗?

谢谢,

listview objective-c uibutton swift

6
推荐指数
1
解决办法
1778
查看次数

在Swift中配置ios8 VPN配置和控制

我正在尝试使用ios8的VPN配置和控制设置应用内VPN连接,但我被卡住了.我正在使用http://ramezanpour.net/post/2014/08/03/configure-and-manage-vpn-connections-programmatically-in-ios-8/上的资源来帮助,但我遇到了问题将协议绑定到VPN管理器.

到目前为止,我有以下代码,根据上面的教程,您需要将协议绑定到管理器...

func initVPN() {
    let manager: NEVPNManager = NEVPNManager.sharedManager()
    let p = NEVPNProtocolIPSec()

    p.username = "ospencer"
    p.passwordReference = getPasscodeNSData("vpnPassword")
    p.serverAddress = "vconnect.uk.capgemini.com"
    p.authenticationMethod = NEVPNIKEAuthenticationMethod.SharedSecret
    p.sharedSecretReference = getPasscodeNSData("vpnSharedSecret")
    p.useExtendedAuthentication = true
    p.disconnectOnSleep = false
Run Code Online (Sandbox Code Playgroud)

我已经尝试编写manager.protocol = p,但是我收到错误"预期成员名称跟随".和"协议声明中的预期标识符".我尝试了一些在一些Objective C示例'[manager setProtocol:p]'中使用的setProtocol函数,但这似乎不存在于最新的xcode构建中.

有人可以帮忙吗?此外,似乎几乎没有关于在互联网上使用VPN功能的详细信息 - 即使在Apple的网站上也是如此.任何指针都很有用.

谢谢,

奥利弗.

vpn ios swift

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

升级后最新版本的 Chromium 出现“Google API Keys is Missing”错误

一段时间以来,我一直在 Windows 7 系统上使用 Chromium,并且运行良好。但是,在https://download-chromium.appspot.com的常用位置升级到最新版本后,当我加载浏览器时,我收到消息“Google API 密钥丢失。Chromium 的某些功能将被禁用”。

然后我也无法登录我的 Google 帐户,收到消息“哦哦。服务不可用,请稍后再试”。我认为这是因为上面的 API 密钥存在问题。

尽管今天删除、重新安装并使用最新版本 (362135),但我仍然无法消除错误。我的普通版 Chrome 工作正常。

有没有人有任何想法?

谢谢,

奥利弗。

google-api api-key chromium

5
推荐指数
0
解决办法
1638
查看次数

基于Swift中的列表选择在ViewControllers之间传递值

我正在尝试将listView选择的选定索引号从一个ViewController传递到另一个ViewController但遇到问题时,tableView didSelectRowAtIndexPath委托比prepareForSegue函数稍晚运行.

基本上,在didSelectRowAtIndexPath中,我选择变量,然后在prepareForSegue中获取.问题是prepareForSegue似乎运行第二个选择单元格,并且在调用didSelectRowAtIndexPath函数之前,所以我的变量没有被传递.

我的主要代码是:

tableView didSelectRowAtIndexPath委托,设置'selectedResult'...

func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
    selectedResult = indexPath.item
    txtNameSearch.resignFirstResponder()    //get rid of keyboard when table touched.
    println("saved result")


    //tableView.deselectRowAtIndexPath(indexPath, animated: false)
    //var tappedItem: ToDoItem = self.toDoItems.objectAtIndex(indexPath.row) as ToDoItem
    //tappedItem.completed = !tappedItem.completed
    //tableView.reloadData()

}
Run Code Online (Sandbox Code Playgroud)

prepareForSegue函数将变量作为'toPass'发送到另一个ViewController('detailViewController'):

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!){
    if (segue.identifier == "detailSeque") {
        println("preparing")
        var svc = segue!.destinationViewController as detailViewController
        svc.toPass = selectedResult

        //println(tableView.indexPathsForSelectedRows().
        //svc.toPass = tableView.indexPathForSelectedRow()

    }
}
Run Code Online (Sandbox Code Playgroud)

提前致谢

tableview viewcontroller segue swift

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