2012-01-31 34 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

相关问题