Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何更改UITabbarController的更多视图控制器UITableViewCells图像?_Ios_Swift_Uitabbar - Fatal编程技术网

Ios 如何更改UITabbarController的更多视图控制器UITableViewCells图像?

Ios 如何更改UITabbarController的更多视图控制器UITableViewCells图像?,ios,swift,uitabbar,Ios,Swift,Uitabbar,更多的viewcontroller图像显示在默认的蓝色背景中,而不是原始图像上。我想将它们更改为原始图像,还想增加UITableViewCell的高度。 我曾尝试在UITabbarController上实现tableview委托方法,但没有任何效果。 甚至更多的NavigationController也没有改变。 1我必须在何处编写这些自定义方法viewDidLoad或ViewWillDisplay。还应选择未调用ViewController。第一次选择tabbar项时,会调用该项,而选择mor

更多的viewcontroller图像显示在默认的蓝色背景中,而不是原始图像上。我想将它们更改为原始图像,还想增加UITableViewCell的高度。 我曾尝试在UITabbarController上实现tableview委托方法,但没有任何效果。 甚至更多的NavigationController也没有改变。 1我必须在何处编写这些自定义方法viewDidLoad或ViewWillDisplay。还应选择未调用ViewController。第一次选择tabbar项时,会调用该项,而选择more项时,不会调用该项。 2我应该在哪里实现UITableView委托方法

我的屏幕-

所需屏幕-


使用swift的解决方案很有帮助。提前谢谢。

这里有一些内容需要解包。我不能完全肯定我完全理解这个问题,但我会继续回答,并尽我所能部分回答

ViewDidLoad和ViewWill将出现

在viewDidLoad中添加用于初始化的代码。此方法将在最初加载视图时运行,除非您每次实例化控制器,否则它将只运行一次。在这种情况下,您不会这样做,因为您使用的是预构建的tabbar系统,该系统会为您处理此问题

因此,我将在viewDidLoad中添加样式代码

要显示viewController时,将调用ViewWillDisplay。这种情况每次都会发生,所以如果您需要执行重复性任务,如网络调用、基于其他数据重新排序、刷新表,您应该在这里执行

表方法


要对表执行任何需要执行的操作,视图控制器很可能同时需要UITableViewDelegate和UITableViewDataSource。在线查阅任何UITableView教程,它们都非常全面,并将解释如何在viewController中添加所需的所有表格方法。

我已经满足了要求。我遵循的步骤是

以扩展UITabbarController的ViewController为例。 取一个包含五个元素的数组。如果超过五个元素,则默认启用更多功能。 前四个选项卡(根据需要)和第五个选项卡应为“更多”选项卡。具有所需的选项卡图像。 对于“更多”选项卡,创建扩展UITableView委托和数据源的视图控制器。并分别实现委托和数据源的方法。 获取要显示的单元格数组并显示它们。 将此“更多”视图控制器链接到“更多”选项卡。 在cellForRowAtIndexPath方法中更改tableview中的图像。 运行应用程序并通过选择“更多”选项卡进行检查。这一次,它应该显示更改的UI。 当每个单元格在选择单元格时应显示不同的视图控制器时,则使用“从视图控制器中的分段”而不是“从表格单元格中的分段”切换到不同的视图控制器。为每个segue定义一个唯一的segue id,并根据shouldSelectViewController中的开关或ifelse条件,使用PerformsgueWithIdentifier显示ViewController。
感谢@KKRocks提供的宝贵链接。

尝试此解决方案:另一个解决方案:@KKRocks。谢谢你的链接。我没有尝试使用自定义viewcontroller。我会试着回去。感谢您的帮助。在UITableView委托和数据源中,我将UITableView委托和数据源扩展到UITableView控制器的子类CustomTabBarController中。然后,我实现了所有现有的方法。但是没有人打电话。我的问题是我可以用TableView控制器扩展TabBarController吗?或者我应该在“更多”选项卡项中显示UITableViewController的新ViewController子类吗?