Ios 从it访问ViewController';s父类
我有很多ViewController,它们有一个共同的父类Ios 从it访问ViewController';s父类,ios,uiviewcontroller,Ios,Uiviewcontroller,我有很多ViewController,它们有一个共同的父类 @interface X_ViewController : ParentViewController { } 在ParentViewController中,我想运行一些代码,在ViewController本身上执行实际操作 特别是UIActionSheet。 在ParentViewController内部,self.view是错误的做法。 我怎么还能访问“child”(实际上是我自己对象的)视图呢?好吧,我认为这是不可能的。 您可以
@interface X_ViewController : ParentViewController
{
}
在ParentViewController
中,我想运行一些代码,在ViewController本身上执行实际操作
特别是UIActionSheet
。
在ParentViewController
内部,self.view
是错误的做法。
我怎么还能访问“child”(实际上是我自己对象的)视图呢?好吧,我认为这是不可能的。 您可以在不同的情况下访问
childViewController
,但不能访问此项
国际海事组织,你的做法是错误的。
您应该在您的
parentVC
中创建一些公共方法,并让其子级调用它们。反之亦然。您可以将self
转换为X\u ViewController
if ([self isKindOfClass:[X_ViewController class]]) {
[((X_ViewController *)self) doSomething];
}
但我不鼓励这样做。您使用子类是为了获得继承权,而不是反过来(养老金?)。将您的孩子VC导入到您的父母中。(我可能会说这是非常不道德的)
在父对象中创建子VC的引用,然后调用您想要执行的方法您想要执行什么?也许你制造了一个错误的问题。父母不应该对他的孩子一无所知。你能在这里粘贴代码吗:你想调用的父函数和子函数以及调用函数的位置?并将self作为参数传递给self?我希望self.view可以在基类代码中使用。你所做的是让你的
childVC
继承自parentVC
。不能保证您的父VC
和子VC同时存在。您必须确保它们存在,当它们确实存在时,您可以将它们视为同一级别的viewcontroller(我猜您没有使用presentViewController,对吧?)。然后,根据你的方法,你可以访问任何你想要的VC。视图只引用父母的视图。事实上。我希望self.view是我可以在基类代码中使用的东西,不幸的是答案是否定的。self.view
是UIView
的一个实例,而不是UIViewController
,这意味着它是一个视图,而不是MVC模式中的控制器。如果您发现自己处于这种情况,那么您的设计可能有问题。更好的方法是修复它,而不是寻找解决办法。