2012-05-30 49 views
0

我试图创建一个视图数组,然后可以在我的申请人中进行滑动。将UIViews加载到数组中,然后使用它们

我试图在我的视图中设置我的数组,然后将数组中的第一个视图加载到视图中。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
    self.title = @"Prototype"; 
    //Initalizse the swipe gestuer listener 
    [self setupLeftSwipeGestureRecognizer]; 
    [self setupRightSwipeGestureRecognizer]; 

    //alloc and init viewcontroller nibs 
    self.detailViewA = [[DetailViewController alloc]initWithNibName:@"DetailViewController" bundle:[NSBundle mainBundle]]; 
    self.detailViewB = [[DetailViewControllerB alloc]initWithNibName:@"DetailViewControllerB" bundle:[NSBundle mainBundle]]; 
    self.detailViewC = [[DetailViewControllerC alloc]initWithNibName:@"DetailViewControllerC" bundle:[NSBundle mainBundle]]; 
    // Create Array 
    viewArray = [NSArray arrayWithObjects:detailViewA_, detailViewB_, detailViewC_, nil]; 

    // set detail View as first view 
    [self.view addSubview:[viewArray objectAtIndex:0]]; 

} 

之后它崩溃。并产生这个消息。

2012-05-31 10:06:33.769 SMPrototypeB[2394:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[DetailViewController superview]: unrecognized selector sent to instance 0x131b00' 

回答

3

您正在添加视图控制器作为子视图,但您需要做的是添加该视图控制器的视图。

UIViewController *tempVC = (UIViewController*)[viewArray objectAtIndex:0]; 
[self.view addSubView:tempVC.view]; 
+0

如果我将这些东西加载到当前视图中,会有所帮助吗?事情是我有一个masterview处理其他3个视图的动画,这些视图以子视图的形式加载......如果这是有道理的。 –

+0

如果你有一个主视图控制器,你正在加载其他视图控制器的视图到你身上应该没问题。在我看来,这是一个很好的做法,特别是如果你想分离出每个视图控制器的逻辑。你实际上想要将数组中的单个viewController转换为“ViewController”,以便可以在数组中访问它们。我的代码示例仅适用于您的第一个元素。 – rooster117

+0

好的谢谢..我会继续研究你给我的信息..我还是不太了解它..但更多的阅读,我会到达那里。 –

相关问题