2014-05-13 69 views
0

我想使用輔助VC中的按鈕取消隱藏ViewControl中的某些按鈕。使用委託從VC2中取消隱藏VC1中的按鈕

在我的研究中,我發現我必須使用「授權操作」。

我已經創建了一個名爲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

+0

寫協議VC2第一.. –

+0

感謝您的意思是先寫@protocol CustomDelegate - (void)hideUnhidebutton:(BOOL)value;在VC2中爲 ? – SNos

+0

是的。並考慮下面的答案。使用UIViewController而不是NSObject –

回答

1

你VC1應該擴展的UIViewController。

@interface VC1 : UIViewController <CustomDelegate> 

之後再次在界面生成器中進行連接。

1

嗨我審查你的代碼&我會改變一些東西。我會分享這一個。請檢查

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

而且在故事板添加導航控制器像下面的圖像 enter image description here

現在,它完美運行:)

+0

謝謝..我試圖改變代碼並添加NC但現在我無法進入VC1 Oradd按鈕 – SNos

+0

http:// www .sendspace.com/file/iivbb5在這裏下載您的代碼 –

+0

我現在覺得很愚蠢,但是如果我運行這個項目,它會在我的Xcode 5中崩潰。 – SNos

相關問題