这里是代码:
# your other imports here
import sys
USAGE_MSG = "Usage: test.py START_TIMESTAMP END_TIMESTAMP"
if len(sys.argv) != 3:
print(USAGE_MSG)
sys.exit(1)
try:
s = int(sys.argv[1])
t = int(sys.argv[2])
except TypeError: # couldn't convert one of the timestamps to int
print("Invalid timestamp")
print(USAGE_MSG)
sys.exit(1)
# the rest of your code can go here
发生错误:
由于未捕获的异常终止应用程序' NSInternalInconsistencyException',原因:'无法使用标识符Viktor,可选(29)出列的单元格 - 必须注册一个nib或类标识符或连接故事板中的原型单元
我知道我必须标识单元格,如何从代码中执行此操作导致变量' Profile'我的import UIKit
class SliderMenuTableViewController: UITableViewController {
var tableArray = [String]()
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()
let age: String
age = String(LoginViewController.AGE)
let Profile = LoginViewController.NAME! + ", " + age
tableArray = [Profile,"Second","Third","Fourth","Logout"]
}
// table view delegate method
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier(tableArray[indexPath.row], forIndexPath: indexPath) as UITableViewCell
cell.textLabel?.text = tableArray[indexPath.row]
if cell.textLabel?.text == tableArray[0] {
cell.imageView?.frame = CGRectMake(10, 10, 50, 50)
cell.imageView!.layer.borderWidth = 1
cell.imageView!.layer.masksToBounds = false
cell.imageView!.layer.borderColor = UIColor.blackColor().CGColor
cell.imageView!.layer.cornerRadius = cell.imageView!.frame.width/2
cell.imageView!.clipsToBounds = true
cell.imageView?.image = LoginViewController.AVATAR
}
return cell
}
中的内容不是静态的,我无法从故事板中识别它?
答案 0 :(得分:2)
您没有在单元格中提供正确的单元格标识符,因为它正在崩溃。你需要在这里提供CellIdentifier方法,你将用于细胞。在故事板中为相同的单元格放置相同的标识符。
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("CellIdentifier", forIndexPath: indexPath) as UITableViewCell
//configure your cell
return cell
}
您必须按照以下方式注册单元格,具体取决于您使用自定义单元格的方式
注册自定义单元格
tableView.registerClass(MyCell.classForCoder(), forCellReuseIdentifier: kCellIdentifier)
使用Xib注册自定义单元格:
tableView.registerNib(UINib(nibName: "UICustomTableViewCell", bundle: nil), forCellReuseIdentifier: "UICustomTableViewCell")
更新:如果您通过XIB创建单元格,即使您也可以在XIB中分配单元格标识符。
答案 1 :(得分:0)
这里的故事板。 第一 我使用SWRevealViewController作为滑块菜单。现在通过单击菜单中的单元格,就像你告诉我它移动到另一个视图控制器,但菜单不在那里工作。
我使用了这段代码:
让mainStoryboard = UIStoryboard(名称:" Main",bundle:NSBundle.mainBundle()) 让vc:UIViewController = mainStoryboard.instantiateViewControllerWithIdentifier(" Profile")作为UIViewController self.presentViewController(vc,animated:true,completion:nil)
这样:
let vc: UIViewController = (self.storyboard?.instantiateViewControllerWithIdentifier("viewContName"))!
self.navigationController?.pushViewController(vc,animated:true)
不起作用。如何移动到配置文件视图控制器和菜单仍然有效?
答案 2 :(得分:-1)
这是因为您的单元格未使用identifier
正确启动。使用下面的代码创建单元格并使用。动态单元id初始化在这里产生概率。
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell
而不是你的:
var cell = tableView.dequeueReusableCellWithIdentifier(tableArray[indexPath.row], forIndexPath: indexPath) as UITableViewCell
修改强>
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
// here you get the each cell by indexpath.row
// code here to go to the another viewController accordingly
print("You selected cell #\(indexPath.row)!")
}
编辑2: 使用以下代码导航到另一个视图,单击单元格并相应地显示您的自定义数据。
let vc: UIViewController = (self.storyboard?.instantiateViewControllerWithIdentifier("viewContName"))!
self.navigationController?.pushViewController(vc, animated: true)