我的问题不同,我有一个大视图(classA)和一个小视图(classB),除了这个小视图有四个属于A类的按钮,我想禁用这些按钮。 这是我的代码。
在classB.m中
-(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)我正在同一个班级;
答案 0 :(得分:0)
使用该对象使类10的对象访问该按钮
-(void)HidesideBarButtons{
ClassA *obj =[[ClassA alloc]init];//Initialize it by your way
UIButton *myBtn=[obj getButton1];
[myBtn setEnabled:FALSE];
}
答案 1 :(得分:0)
如果我理解您的问题,您需要使用委托。
在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
当你在ClassB
中初始化MainViewController.m
时,你需要写:
[classB setDelegate:self];
需要在(void) hideSideBarButtons
文件中编写ClassBDelegate方法 - MainViewController.m
,并禁用此方法中的所有按钮。例如(在MainViewController.m
)
-(void) hideSideBarButtons {
self.peBtn.enabled = NO;
}
希望它有帮助))