我将UIViewController
(我们称之为ParentViewController
)子类化,并添加了一堆属性和方法 - IBOutlets和IBActions等 - 我想要为ChildViewControllerA
的子类化,{ {1}},ChildViewControllerB
等
我的愚蠢问题是,由于所有这些属性都在ChildViewControllerC
接口中定义,如何在ParentViewController's
'界面中将它们连接起来?在我的ios 7 storyboard主文件中,我为ChildViewControllers
,ChildViewControllerA
,ChildViewControllerC等中的每一个都有一个ViewController,但我没有相应的.h /中的小加号端口。 .m文件,因为它们都在ChildViewControllerB
中。
有什么我想念的吗?我是否需要重新定义每个ParentViewController.h
中的属性才能将它们连接到相应的故事板视图?
答案 0 :(得分:2)
这应该按照你描述的方式工作;正如我刚刚验证的那样。
@interface ParentViewController : UIViewController
@property (nonatomic, weak) IBOutlet UILabel *someLabel;
@end
创建ParentViewController
的子类,并将Storyboard编辑器中的自定义类设置为ChildViewControllerA
和ChildViewControllerB
,如下所示:
如果这与您正在做的事情相符,那么应该在那里。
简而言之,您不需要重新定义先前在对象层次结构中定义的出口。
答案 1 :(得分:0)
你尝试做什么?如果您尝试将参数传递给另一个视图控制器,请在ParentViewController中使用此方法:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
[segue.destinationViewController yourInitializationMethod:withProperties];
}
答案 2 :(得分:0)
逻辑很简单,如果你继承任何类,那么Outlets将可用于继承它的所有其他类。例如。
在你的情况下,你有Parent
,其中你有Outlet说ButtonA
。现在,其他类Child1
和Child2
继承Parent
他们可以访问ButtonsA
,但是如果您创建了Child1
和Child2
的任何商店,如果没有其他类继承它,它不适用于任何类,它也不适用于Parent
..如果你想访问属性,你可以将Child Controller
作为属性中的任何一个你的班级。
希望这有帮助。