0

我的问题不同在这里我有一个大视图(classA)和一个小视图(classB),在这个小视图旁边有四个属于A类的按钮,我想禁用这些按钮。这是我的代码。

在 B.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)我住在同一个班级;

4

2 回答 2

0

创建一个 classA 的对象,然后使用该对象访问按钮

-(void)HidesideBarButtons{  
ClassA *obj =[[ClassA alloc]init];//Initialize it by your way
UIButton *myBtn=[obj getButton1];
[myBtn setEnabled:FALSE];
}
于 2013-05-15T07:44:43.797 回答
0

如果我正确理解您的问题,您需要使用delegate

在 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];

比您需要编写 ClassBDelegate 方法-(void) hideSideBarButtons在您的MainViewController.m文件中并禁用此方法中的所有按钮。例如(中MainViewController.m


-(void) hideSideBarButtons {

self.peBtn.enabled = NO;

}

希望能帮助到你))

于 2013-05-15T10:01:53.333 回答