2012-05-15 2 views
0

코코아와 XCode가 새로 도입되었습니다. 귀하의 도움을 받고 싶습니다. 나는 XIB 윈도우의 컨트롤러를 만들고 윈도우를 시작했다. 컨트롤러에 넣고 자하는 파라미터가 하나있다. 파라미터를 설정했는데 버튼을 클릭하면 매개 변수를 복구해야한다. 빈. 예를 들어 목표 C, 코코아, 참조 매개 변수 - ITK # 코코아

...

내가 가진

#import <Cocoa/Cocoa.h> 
#import "ITKExample1Filter.h" 
#import "Helper.h" 

@interface VentanaGraficaController1 : NSWindowController { 
    ViewerController* _viewerController; 
    IBOutlet NSComboBox *combo; 
    IBOutlet NSTextField *windowLevelTextField; 
    IBOutlet NSTextField *windowWidhTextField; 
    NSString *cad_; 
} 


@property NSString *cad; 
@property ViewerController* viewerController; 
//Metodos 
- (IBAction) converToRGB: (id)sender; 
- (IBAction) initAux: (id)sender; 
- (void) initController : (ViewerController*) vc: (int) n; 

@end 

@implementation VentanaGraficaController1 

//Parametros que sintetizaremos para manejar los valores por referencia 
@synthesize viewerController = _viewerController; 
@synthesize cad = cad_; 

// ..... 

- (IBAction) converToRGB: (id)sender { 
    NSAlert *a = [NSAlert alertWithMessageText:cad_ 
           defaultButton:@"OK" 
           alternateButton:@"Cancel" 
            otherButton:nil 
        informativeTextWithFormat:@"Cadena por syntetise"]; 
    [a runModal]; 
} 
// ..... The rest 

나는 다음과 같이 내 컨트롤러를 사용 : 나는 NSSAlert를 표시 할 때 항상 보여

VentanaGraficaController1 *controller = [[VentanaGraficaController1 alloc] initWithWindowNibName:@"VentanaGraficaController1"]; 

[controller setViewerController:viewerController]; 
[controller setViewerController:(viewerController)]; 
[controller setCad:@"works??"]; 
controller.viewerController = viewerController; 

controller.cad = @"works??"; 
[controller showWindow:nil]; 

공백으로 나 cad_ 또는 빈 문자열, 나는 많은 방법을 시도했지만, 내가 왜 값을 잃어 버릴 지 모른다.

답변

1

컨트롤러에 속성을 유지한다고 말하지 않는 것처럼 보입니다.

당신은이

@property NSString *cad; 
@property ViewerController* viewerController; 

어떤 그들이 당신에 사라질 수 즉, 값을 할당 기본값. 내가

@interface VentanaGraficaController1 : NSWindowController { 
    ViewerController* _viewerController; 
    IBOutlet NSComboBox *combo; 
    IBOutlet NSTextField *windowLevelTextField; 
    IBOutlet NSTextField *windowWidhTextField; 
    NSString *cad_; 
} 


@property(strong) NSString *cad; 

@end 

And In my .m file I have the Action of the Button With this Code.... 

@implementation VentanaGraficaController1 

//Parametros que sintetizaremos para manejar los valores por referencia 
@synthesize viewerController = _viewerController; 
@synthesize cad = cad_; 

- (id)initWithWindow:(NSWindow *)window 
{ 
    self = [super initWithWindow:window]; 

    if (self) { 
     // Initialization code here. 

    } 

    return self; 
} 

- (IBAction) converToRGB: (id)sender { 
    NSAlert *a = [NSAlert alertWithMessageText: 
           cad_ 
           defaultButton:@"OK" alternateButton:@"Cancel" 

            otherButton:nil informativeTextWithFormat: 

        @"Just a Test"]; 
    [a runModal]; 
} 

이 그리고 내 코드에서 XIB의 내 컨트롤러에서 나는 참조하여있는 NSString의 값을 설정하기 위해 노력하고있어

@property (strong) NSString *cad; 
@property (strong) ViewerController* viewerController; 
+0

감사의 난 밤에 테스트하고 난 당신에게 –

+0

을 말할 것이다 안녕과 문자열을 인쇄 인쇄 할 때, 같은 결과를 얻었다 다시, 나는 내가 뭘 잘못했는지 모르겠다. 나는 내 재산에 강한 것을 덧붙였다. 그러나 여전히 가치를 잃어 가고있다. 내가 무엇을 할 것인지 다시 알았다. ... –

+0

해결, 나는 어리 석다. 나는 덧붙였다. 내 소유자 파일의 동일한 유형으로 내 Xib에 다른 컨트롤러, 나는 멍청한 녀석입니다 : P, 그냥 소유자 컨트롤러와 함께 모두 괜찮 았어 –

0

:

에 그 라인을 변경해보십시오 ...

VentanaGraficaController1 *controller = [[VentanaGraficaController1 alloc] initWithWindowNibName:@"VentanaGraficaController1"]; 
    controller.cad = @"My striiiiing"; 
    [controller showWindow:nil]; 
    return 0; 

그냥 내가 보내야 할 다른 대상이 있다는 것을 의미합니다. NSString을 보내라. 같은 이유로, 거의 2 일간 이걸 가지고있다.

내가 너무 세터를 사용했다,하지만 난이있는 NSString가 NSSAlert 아 파크 그것은 빈 또는 NILL