ersten Controller Code:Zugriff auf Methoden aus anderen Controller Probleme iOS
optionscontroller = [[OptionsViewController alloc] init ];
[optionscontroller setupSocket];
zweiten Controller Code:
- (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]); }
Einer von Aktionen:
- (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++;
}
Wenn i rufe "setupSocket" von f auf ersten Controller es startet, aber wenn ich zu OptionsViewController gehen und klicken Sie auf die Schaltfläche - nichts passiert, es ist richtig konnotiert und es funktioniert, wenn ich "SetupSocket" aus dem zweiten Controller "View Did Load-Funktion" alles funktioniert in Ordnung, warum ???
Also, wenn einige Methoden nicht vom Zielansicht-Controller initialisieren, funktioniert diese Methode nicht. Ich kann nicht verstehen, wie es passieren kann.
Wie gehst du zum 'OptionsViewController'? Ich bin mir ziemlich sicher, dass Sie eine andere Instanz verwenden als die, die Sie in '[optionscontroller setupSocket];' verwendet haben. Was meinst du mit "Aktionsmethode funktioniert nicht"? kannst du genauer sein? – sch
Ich tippe einfach auf ein Tab-Bar-Symbol –