2012-01-31 6 views
3

私のホームページには、ホーム、通知、ログインという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(デリゲートメカニズム)を使用して親ビューコントローラに値を送り返します。

いくつかのサンプルではhereを参照してください。またhere

多くのサンプルは、すべてのAppleサンプルアプリケーションで見つけることができます。

私はまたあなたにSample Applicationを与えました。あなたの必要性に応じてプロトコルを変更してください。

+0

私は以下の質問で定義されたプロトコルを使用しましたが、ヘルプはありません.http://stackoverflow.com/questions/1368757/setting-property-value-of-親ビューアクラスの子ビューコントローラ – NoviceDeveloper

+0

あなたの親切な助けをありがとう....しかし、すべての例では、両方のクラスはuiviewcontrollerクラスを継承しますが、私の場合、私は別のクラスに継承しています。 – NoviceDeveloper

+0

あなたは2つのクラスを送ることは可能ですか? – Ilanchezhian

関連する問題