第一個控制器的代碼:從其他控制器問題訪問方法的iOS
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」它啓動,但當我去OptionsViewController並點擊按鈕 - 什麼都沒有發生,它是內涵正確,它的工作原理,當我從第二個控制器的「視圖加載函數」調用「setupSocket」一切正常,爲什麼?
因此,如果不是從目標視圖控制器初始化某些方法,則此方法不起作用。我無法理解它會如何發生?
你如何去'OptionsViewController'?我非常確定你使用了一個不同於你在'[optionscontroller setupSocket];'中使用的實例。另外,你的意思是「行動方法不起作用」?你可以說得更詳細點嗎? – sch 2012-04-12 18:03:35
我只需點擊一個標籤欄圖標 – 2012-04-12 18:47:01