Ios 从某个班上得到一个孩子

Ios 从某个班上得到一个孩子,ios,objective-c,Ios,Objective C,我使用的是ViewController@interface PagerViewController:UIViewController,其中我将其他ViewController添加为子addChildViewController。我添加的那些ViewController来自不同的类,但它们都继承自UIViewController。我可以使用以下代码循环通过它们: for(NSUInteger i = 0; i<(unsigned int)[_app.windows count]; i

我使用的是ViewController@interface PagerViewController:UIViewController,其中我将其他ViewController添加为子addChildViewController。我添加的那些ViewController来自不同的类,但它们都继承自UIViewController。我可以使用以下代码循环通过它们:

    for(NSUInteger i = 0; i<(unsigned int)[_app.windows count]; i++) {

    NSLog(@"%@",((MyViewController*)[self.childViewControllers objectAtIndex:i]).getQAnswer);

}

但是,在上面的示例中,我总是需要将它转换为正确的类型,我将它转换为MyViewController。问题是它有许多来自不同类的子对象,所以如果我只想从另一个ViewController类而不是MyViewController类中获得这些子对象,该怎么办?

您可以使用isKindOfClass来过滤属于某个类的实例的对象。例如:

if ([object isKindOfClass:[anotherViewController class]]) {

}

如果要从某个类中获取对象,请使用isMemberOfClass:,如果要包含子类,请使用isKindOfClass:。
例如,如果arr是NSMutableArray,那么[arr iskindof class:[NSArray class]]是TRUE,[arr isMemberOfClass:[NSArray class]]是FALSE。

在这里检查我的答案谢谢,它需要这样:如果[[self.childViewControllers objectAtIndex:i]是kindof class:[anotherViewController class]]当然,你可以根据需要使用它^^