2011-05-19 64 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

相關問題