2012-01-31 107 views
3

我的主頁有一個帶有三個按鈕的工具欄,通知和登錄。我只希望通知按鈕顯示只有當用戶在英寸。這裏是我的代碼如何將值傳遞給子類中父類中定義的變量?

//Parent class 

@interface Toolbar : UIViewController { 
UIToolbar *toolBar; 
UIButton *home; 
UIButton *notification; 
    UIButton *login; 
BOOL signIn; 

} 

@property(nonatomic,assign)BOOL signIn; 
@property(nonatomic,retain)UIButton *home; 
@property(nonatomic,retain)UIButton *notification; 
@property(nonatomic,retain)UIButton *login; 
@property(nonatomic,retain)UIToolbar *toolBar; 


-(IBAction)Home:(id)sender; 
-(IBAction)LogIn:(id)sender; 

//Toolbar.m

-(void)viewWillAppear:(BOOL)animated{ 
[super viewWillAppear:animated]; 


if (!signIn) { 
    [notification setHidden:YES]; 
    [login setHidden:NO]; 
}else { 
    [notification setHidden:NO]; 
    [login setHidden:YES]; 
} 

}

//子類

@interface LoginScreen:工具欄{

LoginScreen.m

-(IBAction)SignIn{ 
if ([emailField.text isEqualToString:@"m"] && [passwordField.text isEqualToString:@"a"]) { 
    NSLog(@"loggedIN"); 
    signIn=YES; 

    Home *home=[[Home alloc]initWithNibName:@"Home" bundle:nil]; 

    [self.navigationController pushViewController:home animated:YES]; 
    [home release]; 
}else { 
//other condition 
} 

}

問題是我能夠回家但登錄條件不起作用。請指導我。謝謝..

回答

1

使用Protocol s(委託機制)將值發送回父視圖控制器。

查看here某些樣品。另外here

你可以在每個蘋果示例應用程序中找到許多這樣的示例。我也給你一個Sample Application。經過並修改協議根據您的需要

+0

我已經使用了下面的問題定義的協議..但沒有幫助..http://stackoverflow.com/questions/1368757/setting-property-value-of- parent-viewcontroller-class-from-child-viewcontroller – NoviceDeveloper 2012-01-31 06:05:09

+0

感謝您的善意幫助....但在所有示例中,這兩個類都繼承了uiviewcontroller類,但在我的情況下,我正在將其中一個類繼承到另一個類中,並且這給了我錯誤信息。 – NoviceDeveloper 2012-01-31 10:30:42

+0

您可以發送2個課程嗎? – Ilanchezhian 2012-01-31 10:43:07

相關問題