本方法显示空白视图控制器

时间:2017-05-11 18:13:19

标签: ios swift

所以我是iOS应用程序开发的新手,基本上只是尝试根据我一直在研究的教程和研究创建一个真正的应用程序。基本上,我有一个视图控制器,后面是一个导航控制器和一个链接到该导航控制器的表视图控制器(带有静态单元)。

这里的目标是简单地根据条件(如果存在某些东西,呈现表格视图控制器,否则不要)呈现表格视图控制器,虽然我可以让它显示,但它是&#39 ;空白。它没有我添加的任何标签或文本框。

例如,这里是我在原始视图控制器中的内容。我尝试的是检查profileExists是否存在,以及是否显示表视图控制器:

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    // Check if user has a profile. If so, go to view page; otherwise, bring up new profile view.
    if profileExists != 1 {
        // Create new profile page.
        if let vc = storyboard?.instantiateViewController(withIdentifier: "CreateProfileController") as? CreateProfileViewController {

            present(vc, animated: true, completion: nil)
        }

        print("Need to create new profile page")
    }

}

我有两个类 - 一个名为CreateProfileViewController(我的导航控制器已分配给它),我有一个CreateProfileTableViewController类,这是我的表视图控制器所分配的。导航控制器的故事板ID为CreateProfileController

基于该代码,我希望显示表视图控制器,以及驻留在该表视图控制器上的标签和文本框。我对表视图控制器空白的地方可能做错了什么?

编辑:

更新为包含CreateProfileTableViewController类:

//
//  CreateProfileTableViewController.swift
//  Steady Marketing
//
//  Created by Alton on 5/11/17.
//  Copyright © 2017 SteadyMarketing. All rights reserved.
//

import UIKit

class CreateProfileTableViewController: UITableViewController {


    override func viewDidLoad() {
        super.viewDidLoad()

        // Uncomment the following line to preserve selection between presentations
        // self.clearsSelectionOnViewWillAppear = false

        // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
        // self.navigationItem.rightBarButtonItem = self.editButtonItem()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    // MARK: - Table view data source

    override func numberOfSections(in tableView: UITableView) -> Int {
        // #warning Incomplete implementation, return the number of sections
        return 0
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of rows
        return 0
    }

    /*
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath)

        // Configure the cell...

        return cell
    }
    */

    /*
    // Override to support conditional editing of the table view.
    override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
        // Return false if you do not want the specified item to be editable.
        return true
    }
    */

    /*
    // Override to support editing the table view.
    override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
        if editingStyle == .delete {
            // Delete the row from the data source
            tableView.deleteRows(at: [indexPath], with: .fade)
        } else if editingStyle == .insert {
            // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
        }    
    }
    */

    /*
    // Override to support rearranging the table view.
    override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) {

    }
    */

    /*
    // Override to support conditional rearranging of the table view.
    override func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
        // Return false if you do not want the item to be re-orderable.
        return true
    }
    */

    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destinationViewController.
        // Pass the selected object to the new view controller.
    }
    */

}

1 个答案:

答案 0 :(得分:3)

在显示任何基本的tableviewcontroller之前,我们需要做一些事情。

第1步:

配置数据源和委托。

第2步:

使用基本的2个数据源方法创建一些行。

  1. numberofrows。在你的情况下是0;
  2. cellForAtIndexPath。在你的情况下,我可以看到它的评论。
  3. 有很多资源。现在这里有一个链接

    iOS & Swift Tutorial: UITableViewController-ralfebert