首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重用情节提要中的视图

重用情节提要中的视图
EN

Stack Overflow用户
提问于 2011-12-19 07:50:33
回答 6查看 7.6K关注 0票数 6

我有一个带有自定义部分标题的表视图。节标题的视图在情节提要中定义,并连接到一个实例变量。有没有办法从故事板中请求一个新的视图实例?

在过去,我通过在自己的xib文件中定义节头并使用以下命令获得一个新实例来做到这一点

代码语言:javascript
复制
[[NSBundle mainBundle] loadNibNamed:@"TimerViewSectionHeader" owner:self options:nil];
UIView *newHeaderView = self.sectionHeaderView;
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-12-19 09:32:22

我认为没有办法做到这一点。最好的方法是将表视图自定义标题视图放在一个单独的nib中,并在需要使用它时像在代码示例中那样加载它。

票数 3
EN

Stack Overflow用户

发布于 2011-12-21 21:56:59

我试着做同样的事情,但遇到了同样的问题。

我很喜欢使用故事板,这给我留下了深刻的印象,我可以如此快地创建一个工作的UI。但是,一旦您需要重用视图,将这些视图和它的UIViewController子类放在一个单独的nib中是很有意义的。

然后,您可以在重用视图应该放置的所有位置放置一个通用UIView,并使用ViewController添加该视图:

代码语言:javascript
复制
[myReusableViewController loadView];
[myReusableViewController viewDidLoad]; // You have to handle view callbacks yourself.

[self.myReusableViewPlaceholder addSubview:myResusableViewController.view];
[myReusableViewController viewWillAppear:YES];

所以总结一下:

  • 使用序列图像板,它很棒
  • 在序列图像板中创建应用程序的框架,以及任何静态视图(如关于屏幕等)
  • 在自定义nib + UIViewController子类中创建可重用的视图,并在序列图像板中添加UIView占位符。

在另一个答案中,我想到了一些Pros and Cons of Storyboard

票数 3
EN

Stack Overflow用户

发布于 2012-04-19 06:20:29

我为此提出的解决方案如下:

我有一个包含多个原型单元的表视图,可以显示复杂的数据。有到详细信息视图和事务处理视图的分段。

第一个表视图有一个搜索按钮,该按钮显示一个带有结果的新表视图。它需要与推送它的主表视图相同的功能;包括到详细视图和事务进度视图的segues,因此:

在情节提要上,选择并复制主表视图。取消选择并粘贴。创建一个从主表视图到第二个表视图的推送段;或者从你想要导航到它的位置。根据需要修改第二个表视图。IE:如果它需要一些UI更改,没问题。

创建一个新的视图控制器类,它是运行主表视图的视图控制器的子类。

重写子类中的数据委托,以提供所需的数据子集。

回到情节提要,选择您的第二个tableview控制器,然后在标识检查器中选择您的子类作为自定义类。

要使此解决方案顺利运行,您的应用程序确实需要管理视图的数据。您可以使用prepareforsegue将数据从第一个表视图传递到第二个表视图,但我发现从多个角度来看,应用程序数据模型要灵活得多。

除非您有通过segue推送到子视图的按钮,否则您的子类将需要覆盖通过带有标识的segues推送的函数。NB Segues必须有唯一的标识符,如果你对它们进行id的话。

它花了大量的试验和错误来弄清楚这一点,但是一旦你理解了这个概念,它就是一个相对顺利的解决方案,它具有很强的适应性,实现起来也不是那么糟糕。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8555805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档