iOS – UIVIewController中的UITableView不显示所有行
我正面临UIViewController
UITableView
一个错误。 我会试着解释一下情况和我的问题。
我有一个TabBarController
其中一个视图是一个UITableView
的UIViewController
。 我不使用UITableViewController
因为我有我的UIViewController
一些具体的控制。
所以,当我的UIViewController
不是我的TabBarController
的孩子,一切都没问题:所有的行都显示正确。
但是,当我设置我的UIViewController
作为我的TabBarController
一个孩子,我有这个错误:只有一些行显示(精确到三分之一,在所有情况下)。
我只是不明白发生了什么。 我的代码似乎工作,但只有当我的UIViewController
不是我的TabBarController
的孩子。
在这种情况下是否还有另外一种方法?
有我的UIViewController
的代码:
class ProfileController: UIViewController, UITableViewDataSource, UITableViewDelegate { @IBOutlet weak var tableChallenges: UITableView! @IBOutlet weak var profileTabs: UISegmentedControl! var pageViewController : UIPageViewController! override func viewDidLoad() { super.viewDidLoad() self.tableChallenges.dataSource = self self.tableChallenges.delegate = self self.tableChallenges.reloadData() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 5 } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("challengeCustomCell", forIndexPath: indexPath) as! ChallengeCustomCell switch(self.profileTabs.selectedSegmentIndex) { case 0: cell.challengeSuccededOrFailedImage.hidden = true break case 1: cell.challengeSuccededOrFailedImage.hidden = false cell.challengeSuccededOrFailedImage.image = UIImage(named: "challenge-succeded") break case 2: cell.challengeSuccededOrFailedImage.hidden = false cell.challengeSuccededOrFailedImage.image = UIImage(named: "challenge-failed") break case 3: cell.challengeSuccededOrFailedImage.hidden = true break default: break } return cell } @IBAction func selectedItemChanged(sender: AnyObject) { self.tableChallenges.reloadData() } }
在此先感谢您的答案! 🙂
自从MainStory董事会出来,我不是一个很大的粉丝,有一天晚上,我有同样的错误,我不得不摆脱我的视图控制器,并使一个.xib文件的视图控制器。
- 我从我的项目中删除了ViewController
- 然后我去了AppDelagate并添加了一个variables来创build我自己的ViewController
var viewController: ViewController?
-
在返回之前在
didFinishLaunchingWithOptions:
函数下 -
我添加了下面的代码
self.window = UIWindow(frame:UIScreen.mainScreen().bounds) self.viewController = ViewController(nibName:"ViewController",bundle:nil) var navController = UINavigationController(rootViewController: self.viewController!) navController.navigationBarHidden = true self.window?.rootViewController = navController self.window?.makeKeyAndVisible()
基本上在绘制窗口框架之后,我们创build了ViewController
并将其embedded到导航控制器中,然后将导航控制器设置为窗口的根视图。
- 所以你必须创build一个xib文件文件>新build>文件selectIOS /用户界面; 将其命名为ViewController并创build。 你可以添加UITableView控制器之后,一切都应该正常工作。
很抱歉,很长一段时间没有反馈。
我终于find了解决我的问题。 我将包含UITableView
UIViewController
embedded到UINavigationController
。 经过一些研究,似乎是这种情况下的好的层次结构。
希望这会帮助别人。 🙂
- iOS中的GraphQL —第1部分:什么是GraphQL?
- 气泡,气泡,气泡…
- iOS:tableView.reloadData()在swift中不起作用
- dequeueReusableCellWithIdentifier永远不会返回nil
- Iphone presentLocalNotificationNow不触发警报和声音,而应用程序在后台
- 在UIAlertController之外轻触如何解除UIAlertController?
- 如何从谷歌地图的标记在ios中的dictionay?
- 停止使用仅有视网膜的图像
- 如何在iOS中创build像UITableViewCellStyleSubtitle这样的非常自定义的uibutton