ios - 在UIViewController子类中连接出口的位置?

时间:2013-12-14 10:00:59

标签: ios objective-c cocoa-touch uiviewcontroller interface-builder

我将UIViewController(我们称之为ParentViewController)子类化,并添加了一堆属性和方法 - IBOutlets和IBActions等 - 我想要为ChildViewControllerA的子类化,{ {1}},ChildViewControllerB

我的愚蠢问题是,由于所有这些属性都在ChildViewControllerC接口中定义,如何在ParentViewController's'界面中将它们连接起来?在我的ios 7 storyboard主文件中,我为ChildViewControllersChildViewControllerA,ChildViewControllerC等中的每一个都有一个ViewController,但我没有相应的.h /中的小加号端口。 .m文件,因为它们都在ChildViewControllerB中。

有什么我想念的吗?我是否需要重新定义每个ParentViewController.h中的属性才能将它们连接到相应的故事板视图?

3 个答案:

答案 0 :(得分:2)

这应该按照你描述的方式工作;正如我刚刚验证的那样。

@interface ParentViewController : UIViewController
@property (nonatomic, weak) IBOutlet UILabel *someLabel;
@end

创建ParentViewController的子类,并将Storyboard编辑器中的自定义类设置为ChildViewControllerAChildViewControllerB,如下所示:

enter image description here

如果这与您正在做的事情相符,那么应该在那里。

enter image description here

简而言之,您不需要重新定义先前在对象层次结构中定义的出口。

答案 1 :(得分:0)

你尝试做什么?如果您尝试将参数传递给另一个视图控制器,请在ParentViewController中使用此方法:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
     [segue.destinationViewController yourInitializationMethod:withProperties];
}

答案 2 :(得分:0)

逻辑很简单,如果你继承任何类,那么Outlets将可用于继承它的所有其他类。例如。

在你的情况下,你有Parent,其中你有Outlet说ButtonA。现在,其他类Child1Child2继承Parent他们可以访问ButtonsA,但是如果您创建了Child1Child2的任何商店,如果没有其他类继承它,它不适用于任何类,它也不适用于Parent ..如果你想访问属性,你可以将Child Controller作为属性中的任何一个你的班级。

希望这有帮助。