Tony Abboud
Tony Abboud

Reputation: 2430

Use PFQueryTableViewController (from parse) with Swift

I have added a UITableViewController to storyboard and created/assigned a new class which inherits from PFQueryTableViewController to the storyboard controller. I then wrote the following init functions but I am unable to get the Table view controller working correctly.

What needs to be implemented in order to instantiate the PFQueryTableViewController? The code in the Parse doc is not working correctly in swift.

init(coder aDecoder: NSCoder!){
    super.init(coder: aDecoder)
}

init(className aClassName: String!) {
    super.init(className: aClassName)

    self.parseClassName = "Timeline"
    self.textKey = "Name"
    self.pullToRefreshEnabled = true
    self.paginationEnabled = false
}

Upvotes: 4

Views: 2541

Answers (2)

Rufflez
Rufflez

Reputation: 214

You need to initialize the ViewController. As a test, initialize it in your appdelegate like this:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    Parse.setApplicationId("YOUR_APP_ID", clientKey:"YOUR_CLIENT_KEY")
    var controller:PFQueryTableViewController = PFQueryTableViewController(className: "YOUR_PARSE_CLASS_NAME")
    self.window?.rootViewController = controller
    return true
}

Here is my PFQUeryTableViewController

class TestTableViewController: PFQueryTableViewController {

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}

override init(className aClassName: String!) {
    super.init(className: aClassName)

    self.parseClassName = aClassName
    self.textKey = "YOUR_PARSE_COLOMN_YOU_WANT_TO_SHOW"
    self.pullToRefreshEnabled = true
    self.paginationEnabled = false
}
}

Hope this helps, let me know if you have any questions. Note, we need to pass in a class name in the initializer for this class. We pass that class name in the appdelegate here, but when we add this view to another controller, we would pass in the class name there instead. This was more to get you up and running

Upvotes: 4

Krtko
Krtko

Reputation: 1065

This is sorta lame advice.

But just make the class in ObjC and include it in your Bridging Header

Upvotes: 1

Related Questions