更改视图控制器的根视图最终会显示黑色视图

时间:2016-01-21 04:29:33

标签: ios objective-c

我想要实现的是一个视图控制器,它可以显示列表形式和集合形式的项目,并带有一个可以在两个显示选项之间切换的按钮。

所以我实施的是UIViewController可以同时包含UITableViewUICollectionView

当此视图控制器第一次加载时,UITableView显示正常。但是,当我按下切换按钮(它只是将self.view更改为UICollectionView)时,它最终只会显示黑色视图。

当我尝试通过按切换按钮返回UITableView时(再次,它只是将self.view更改为上一个UITableView),没有任何反应。它只是保持黑色。

在更改视图控制器的根视图后,我应该做些什么?

3 个答案:

答案 0 :(得分:0)

如果您只是切换/** * Runs a timer for the specified length. * Timer repeats. * @param milliseconds the amount of milliseconds to run for. * @param seconds the amount of seconds to run for. * @param minutes the amount of minutes to run for. * @param hours the amount of hours to run for. */ public void timerallfeaturesrepeating(int milliseconds, int seconds, int minutes, int hours){ int Timeinterval = hours * minutes * seconds * milliseconds; Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask(){ @Override public void run() { System.out.println("Your timer is up!"); } }, Timeinterval, Timeinterval); } subviews对象。{/ p>

self.view

答案 1 :(得分:0)

没关系!我试过这个并得到了我想要的东西! :) 只需从superview中删除然后再添加回来。

UIView *superview = self.view.superview;
[self.view removeFromSuperview];
self.view = self.collectionView;
[superview addSubview:self.view];

答案 2 :(得分:0)

建议不要在UIViewController调用loadView之后更改column = column.astype('category') column_encoded = column.cat.codes 的视图。您希望视图控制器在其生命周期内拥有一个持久视图。我推荐以下其中一项。

  1. 将表视图/集合视图分层放在视图控制器的视图之上。这样你就不会对主要的底层视图本身进行修改。
  2. 拥有两个视图控制器实例,一个带有表,另一个带有集合视图,并在这些实例之间进行交换。