2011-05-19 57 views
0

我有一个名为GuideViewController的主视图控制器和另一个名为RestauranterViewController的视图控制器。在GuideViewController中,我有一个UIView层次结构,其中的guideParentView驻留在mainView下。现在我想切换到另一个名为RestauranterViewController的视图控制器,在这里我通过 加载RestauranterViewController.xib GuideViewController.xib,其中mainView驻留,但即时将制作guideParentView隐藏。现在我想从RestauranterViewController切换到GuideViewController。但是我不能。 任何人都可以帮我吗?iphone之间切换一个UIViewController到另一个

@class RestauranterViewController; 
@interface GuideViewController : UIViewController { 
    IBOutlet UIView *mainView; 
    IBOutlet UIView *guideParentView; 
} 
@property(nonatomic,readonly,retain) IBOutlet UIView *mainView; 
@property(readwrite,assign) IBOutlet UIView *guideParentView; 

现在,当我点击切换按钮,然后像下面的方法调用

#import "GuideViewController.h" 
#import "RestauranterViewController.h" 
@implementation GuideViewController 

-(IBAction)select:(id)sender{ 
    guideParentView.hidden = YES; 
    RestauranterView = [[RestauranterViewController alloc] initWithNibName:@"RestauranterViewController" bundle:[NSBundle mainBundle]]; 
    RestauranterView.view.frame = CGRectMake(0, 100, 299, 220); 

    [mainView addSubview: RestauranterView.view]; 
} 

而且在RestauranterView当我点击一个按钮,使隐藏的视图中可见,但它失败。

@interface RestauranterViewController : UIViewController { 
    GuideViewController *GuideView; 
} 


#import "RestauranterViewController.h" 
#import "GuideViewController.h" 
@implementation RestauranterViewController 

-(IBAction)back:(id)sender{ 
    GuideView = [[GuideViewController alloc] init]; 
    GuideView.guideParentView.hidden = NO; 
    [self.view removeFromSuperview]; 
} 

似乎是它不能调用父方法。请帮助我...

回答

1

最后我有下面的代码 解决它,我可以使用objectAtIndex或viewWithTag

-(IBAction)back:(id)sender{ 
    superView = (UIView *)self.view.superview; 
    //UIView *perentView = [[topView subviews] objectAtIndex:6];//Its the Object Index in the XIB file 
    UIView *parentView = (UIView *)[superView viewWithTag:177];//I have put a Tag of 177 in the tag field in the XIB. 
    parentView.hidden = NO; 
    [self.view removeFromSuperview]; 
} 
2

您每次打算来回移动时都会创建两个控制器的新实例。它也造成泄漏。

你应该看看UINavigationController。如果将来您需要添加更多控制器,它将真正简化您的问题。有许多关于如何创建教程的教程。你可以从this开始。

+0

谢谢,但我不需要任何的UINavigationController。我已经通过viewWithTag解决了。 – itsazzad 2011-05-21 06:50:40

相关问题