我的问题不同,我有一个大视图(classA)和一个小视图(classB),除了这个小视图有四个属于A类的按钮,我想禁用这些按钮。 这是我的代码。
在课堂上
-(void)HideButtons{ mainView = [[MainViewController alloc]initWithNibName:@"MainViewController" bundle:NULL]; [mainView HidesideBarButtons]; }在B班
-(void)HidesideBarButtons{ self.peBtn.enabled = NO; ByViewBtn.enabled = NO; favouriteBtn.enabled = NO; settingBtn.enabled = NO; ItemButton.enabled = NO; addVehBtn.enabled = NO; uploadAllBtn.enabled = NO; deletevideosBtn.enabled = NO; }这些按钮没有被禁用。我没有导航到那个视图(cassA)我住在同一个班级;
My problem is different here i have a big view(classA) and a small view on it(classB), beside this small view there are four buttons which belongs to class A ,I want to disable those buttons. here is my code.
in classB.m
-(void)HideButtons{ mainView = [[MainViewController alloc]initWithNibName:@"MainViewController" bundle:NULL]; [mainView HidesideBarButtons]; }in class B
-(void)HidesideBarButtons{ self.peBtn.enabled = NO; ByViewBtn.enabled = NO; favouriteBtn.enabled = NO; settingBtn.enabled = NO; ItemButton.enabled = NO; addVehBtn.enabled = NO; uploadAllBtn.enabled = NO; deletevideosBtn.enabled = NO; }these buttons are not getting disabled.i'm not navigating to that view(cassA) i'm staying in same class;
最满意答案
如果我理解你的问题,你需要使用委托 。
在ClassB.h中
@protocol ClassBDelegate <NSObject> -(void) hideSideBarButtons; @interface ClassB: UIViewController { __unsafe_unretained id<ClassBDelegate> delegate_; } @property (nonatomic, assign) id delegate; -(void)hideButtons; @end ---------- In ClassB.m ---------- @implementation ClassB @synthesyze delegate = delegate_; -(void)hideButtons { [self.delegate hideSideBarButtons]; } ---------- In class MainViewController you need to sign up for ClassBDelegate event. Use this code in MainViewController.h ---------- @interface MainViewController : UIViewController <ClassBDelegate> In ClassB.h @protocol ClassBDelegate -(void) hideSideBarButtons; @interface ClassB: UIViewController { __unsafe_unretained id delegate_; } @property (nonatomic, assign) id delegate; -(void)hideButtons; @end In ClassB.m @implementation ClassB @synthesyze delegate = delegate_; -(void)hideButtons { [self.delegate hideSideBarButtons]; }
在MainViewController类中,您需要注册ClassBDelegate事件。 在MainViewController.h中使用此代码
@interface MainViewController : UIViewController在MainViewController.m初始化ClassB ,需要编写:
[classB setDelegate:self];比你需要在MainViewController.m文件中编写ClassBDelegate方法- (void) hideSideBarButtons并禁用此方法中的所有按钮。 例如(在MainViewController.m )
-(void) hideSideBarButtons { self.peBtn.enabled = NO; }
希望能帮助到你))
Make an object of classA then access the button using that object
-(void)HidesideBarButtons{ ClassA *obj =[[ClassA alloc]init];//Initialize it by your way UIButton *myBtn=[obj getButton1]; [myBtn setEnabled:FALSE]; }更多推荐
发布评论