2012-04-12 4 views
0

먼저 컨트롤러의 코드 :액세스 방법 아이폰 OS

optionscontroller = [[OptionsViewController alloc] init ]; 

[optionscontroller setupSocket]; 

두 번째 컨트롤러의 코드 : 행동의

- (void)setupSocket 
{ 
udpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self  delegateQueue:dispatch_get_main_queue()]; 

NSError *error = nil; 

if (![udpSocket bindToPort:0 error:&error]) 
{ 
    // [self logError:FORMAT(@"Error binding: %@", error)]; 
    return; 
} 
if (![udpSocket beginReceiving:&error]) 
{ 
    // [self logError:FORMAT(@"Error receiving: %@", error)]; 
    return; 
} 

isRunning = YES; 
NSLog(@"Udp Echo server started on port %hu", [udpSocket localPort]); } 

하나 :

- (IBAction)testbutton:(id)sender { 


NSString *host = @"192.168.1.255"; 
if ([host length] == 0) 
{ 

    NSLog(@"Address required"); 

    return; 
} 


NSString *msg = @"hi"; 
if ([msg length] == 0) 
{ 
    //[self logError:@"Message required"]; 
    return; 
} 

NSData *data = [msg dataUsingEncoding:NSUTF8StringEncoding]; 
[udpSocket enableBroadcast:YES error:nil ]; 
[udpSocket sendData:data toHost:host port:port withTimeout:-1 tag:0]; 



tag++; 

}

난을 f에서 "setupSocket"을 호출하십시오. irst 컨트롤러가 시작되지만 OptionsViewController로 가서 버튼을 클릭하면 아무 일도 일어나지 않습니다. 올바르게 두려워하고 작동합니다. 두 번째 컨트롤러의 "view load function"에서 "setupSocket"을 호출하면 모든 것이 정상적으로 작동합니까 ???

그래서 대상보기 컨트롤러가 아닌 일부 메서드를 초기화하면이 방법이 작동하지 않습니다. 어떻게 될지 이해할 수 없나요?

+0

'OptionsViewController'를 어떻게 가나 요? 나는 당신이'[optionscontroller setupSocket];에서 사용했던 인스턴스와 다른 인스턴스를 사용할 것이라고 확신한다. 또한'action method does not work'는 무엇을 의미합니까? 더 자세하게 얘기해 주 시겠어요? – sch

+0

난 그냥 탭 막대 아이콘을 누르십시오 –

답변

0

인터페이스 작성기가있는 XIB를 사용하는 경우 버튼을 작동 상태로 연결해야합니다. 마우스 오른쪽 버튼을 클릭하고 인터페이스 빌더에서 버튼의 파일 소유자로 드래그하면됩니다.

오, 당신은 optionscontroller = [[OptionsViewController alloc] initWithNibName : @ "YOURNIBNAMEHERE"];이 필요합니다. 프로그래밍을 작성하는 경우

(당신이 IBAction를를 사용하는 경우 당신이하지 않아야하는) 당신은이를 사용합니다 :

addTarget을 : 조치 : forControlEvents :

여기에 읽기 :

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIControl_Class/Reference/Reference.html

+0

XIB 파일을 사용하는 경우 어떤 시점에서로드해야합니다. IBAction은 Interface Builder와 XIB 파일을 사용하고 있음을 나타냅니다. –