使用委托从VC2取消隐藏VC1中的按钮

时间:2014-05-13 11:14:05

标签: ios objective-c uiviewcontroller delegates

我正在尝试使用辅助VC中的按钮取消隐藏ViewControl中的某些按钮。

在我的研究中,我发现我必须使用“代表团行动”。

我创建了两个名为VC1的类 - > VC2

enter image description here

VC1.h包含:

#import <UIKit/UIKit.h>

@protocol CustomDelegate <NSObject>
-(void)hideUnhidebutton:(BOOL)value;
@end

@interface VC1 : NSObject <CustomDelegate>



@property (strong, nonatomic) IBOutlet UIButton *buttonToUnhide;

@end
在VC1.m中的

我实现了取消隐藏按钮的功能:

#import "VC1.h"

@interface VC1 ()

@end

@implementation VC1

-(void)hideUnhidebutton:(BOOL)value
{
    [self.buttonToUnhide setHidden:value];

}

在此之后,我在VC2.h中添加了添加委托变量作为属性

#import <UIKit/UIKit.h>
#import "VC1.h"


@interface VC2 : UIViewController

@property (nonatomic, strong) id<CustomDelegate> delegatePpty;

@end

最后我在VC2.m中调用了委托函数

#import "VC2.h"


@interface VC2 ()

@end

@implementation VC2


-(void)someAction
{
    [self.delegatePpty hideUnhidebutton:NO];//Call the delegate method to execute
}

没有问题,但是当我尝试启动项目时,它只是在加载后崩溃显示此问题:

enter image description here

这里是项目文件:

http://salvonostrato.com//ex/xcode5/TEST2.zip

我不确定接下来要做什么 请帮忙。

// EDITED

IT不断崩溃:

enter image description here

2 个答案:

答案 0 :(得分:1)

你的VC1应该扩展UIViewController。

@interface VC1 : UIViewController <CustomDelegate>

之后在界面构建器中再次建立连接。

答案 1 :(得分:1)

您好我检查您的代码&amp;我会改变一些事情。我会分享这个。请检查

Replace @interface VC1 : UIViewController <CustomDelegate> instead of @interface VC1 : NSObject <CustomDelegate>

在故事板中添加导航控制器,如下图所示 enter image description here

现在它完美运行:)