簡體   English   中英

Swift-表格視圖黑屏?

[英]Swift - Table View Black Screen?

在用戶與ActivityViewController完成共享之后,我嘗試呈現TableViewController。 這是我的方法:

 @IBAction func share(sender: UIBarButtonItem) {
        var   memeedimage = generateMemedImage()

        let activityViewController = UIActivityViewController(activityItems:[memeedimage] , applicationActivities: nil)
        presentViewController(activityViewController, animated: true, completion: nil)

        activityViewController.completionWithItemsHandler = {
            (activity, success, returneditems, error) in
            println("Activity: \(activity) Success: \(success) Items: \(returneditems) Error: \(error)")
            self.save()
            activityViewController.dismissViewControllerAnimated(true, completion: nil)


            let memevc:MemeTableViewController  = MemeTableViewController()
            self.presentViewController(memevc, animated: true, completion: nil)
        }

我已經解散了activityviewcontroller,self.presentviewcontroller指的是提供了activityViewController的viewthatcontroller。 但是,一旦用戶完成共享,我只會得到黑屏。

為什么是這樣? 我相信這是因為我的tableview無法正確加載。

這是我的MemeTableViewController代碼:

import UIKit

class MemeTableViewController : UIViewController,UITableViewDelegate,UITableViewDataSource
{
    var memesz: [MemeObject]!

    @IBOutlet var tableView: UITableView!

    override func viewWillAppear(animated: Bool) {            
            super.viewWillAppear(animated)
            let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
            memesz = appDelegate.memes
            //tableView.reloadData()
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        navigationController?.hidesBarsOnSwipe = true
        navigationController?.hidesBarsOnTap = true            
    }

    //reserves the number of rows needed to display the image
       func tableView(tableView : UITableView, numberOfRowsInSection section : Int)->Int
       {
            println("ARE YOU SERIOUS")
            return memesz.count
        }

    //Reserves the row to be dequeued for display
     func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {            
        let cell:TableViewzCell = tableView.dequeueReusableCellWithIdentifier("MemesCell", forIndexPath: indexPath) as! TableViewzCell
        let memezrow =  memesz[indexPath.row]
        cell.label1.text = memezrow.textFieldtop
        cell.label2.text = memezrow.textFieldbottom
        cell.imageview.image = memezrow.memedImage
        println("Why is this not being called")

            return cell
    }

    //Method to do something when the row is selected
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        let detailController = self.storyboard!.instantiateViewControllerWithIdentifier("FullScreenMeme") as! FullScreenMeme
        detailController.meme = memesz[indexPath.row]
        self.navigationController!.pushViewController(detailController, animated: true)
        println("This too")
    }
}

嘗試這個,

@IBAction func share(sender: UIBarButtonItem) {
    var   memeedimage = generateMemedImage()


    let activityViewController = UIActivityViewController(activityItems:[memeedimage] , applicationActivities: nil)
    presentViewController(activityViewController, animated: true, completion: nil)


    activityViewController.completionWithItemsHandler = {
        (activity, success, returneditems, error) in
        println("Activity: \(activity) Success: \(success) Items: \(returneditems) Error: \(error)")
        self.save()
        activityViewController.dismissViewControllerAnimated(true, completion: { () -> Void in

        let memevc:MemeTableViewController  = MemeTableViewController()
        self.presentViewController(memevc, animated: true, completion: nil)

    })
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM