2011-05-12 52 views
3

我有一个自定义工具栏视图,我将其存储在自己的nib文件中。我想在其他笔尖中使用该工具栏。是否有可能在主要的nib文件中只有某种视图作为子视图,并将工具栏nib加载到它中?最好在界面生成器中。在界面生成器中从nib文件加载子视图

谢谢

回答

2

加载它听起来好像你在你的笔尖文件的单一视图,并且希望能够在不同的地方在您的应用程序加载该视图的一个实例。

这里,你会怎样做:

首先,在笔尖文件,更改文件的所有者类的UIViewController,并设置您的自定义视图文件的所有者的视图属性。

而且,在你想用你的自定义视图的一个实例的视图控制器,请执行以下操作:

UIViewController *vc = [[UIViewController alloc] initWithNibName:@"YourCustomNib" bundle:nil]; 
UIView *yourCustomView = vc.view; 
[vc release]; 

我知道,似乎有点哈克,但去年我听说实际上的一个从笔尖加载单个视图的“正确”方式。我在nib中使用自定义tableview单元格时使用这种方法。

+0

我的笔尖文件中唯一的事情是一个带按钮的工具栏。我制作了视图控制器的视图。然后在笔尖我需要包含这个,我有一个空的视图,我持有一个参考。我如上所述为视图控制器分配了笔尖名称,并将self.toolbar设置为自定义工具栏的视图。它没有出现。这是在viewDidLoad中。 – smokingoyster 2011-05-12 18:47:59

+0

我通过添加[self.view addSubview:yourCustomView]得到了这个工作;到它。这意味着我不能指望框架的Interface Builder。幸运的是,这是一个始终处于0,0的工具栏。所以没什么大不了的。 – smokingoyster 2011-05-12 20:41:08

+0

我想我知道你的意思......你不能真正引用另一个笔尖的工具栏视图。你必须在代码中插入它。我通常会做同样的事情:使用带有正确框架的占位符视图,然后在viewController中使用它来定位自定义视图。 – CharlieMezak 2011-05-13 15:16:02

3

是存在于一个单独的nib文件中的自定义工具栏?如果是的话,那么你就可以独立随时随地与

NSArray *arr = [[NSBundle mainBundle] loadNibnamed:@"customToolBarNibName" owner:... options:...]; 

UIView *rootView = [arr objectAtIndex: 0]; 
+0

工具栏内置在单独的nib文件中。工具栏类是CustomUIToolbar。所有按钮都连接到网点CustomUIToolbar类。我有一个使用工具栏的任何视图控制器的委托协议。理想情况下,我希望这是一个Interface Builder插件,它显然不再受支持。我希望能够将此工具栏放入“界面”构建器的另一个视图中,以便跟踪设计。 – smokingoyster 2011-05-12 18:18:53

+0

这很好,除了某些原因,尽管框架说frame =(0 0; 1024 54);工具栏填充屏幕。这是对象的NSLog输出。 > – smokingoyster 2011-05-12 19:48:15

相关问题