我现在有一个非常奇怪的问题。我从app delegate类加载了我的rootviewcontroller,然后我创建了singleton类来监听服务器,在这个类中,当我收到任何消息时,我正在调用rootviewcontroller的方法。
当我收到改变颜色的请求时,我调用了rootviewcontroller的方法并且做了
self.view.backgroundcolor = [UIColor bluecolor];
虽然它再次调用rootviewcontroller的viewDidLoad
方法,但它并没有改变颜色。
请帮助我。
在app delegate类中,我正在加载我的rootviewcontroller
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
}
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
然后在Viewcontroller类中,我正在创建webRequest类的单例实例,用于创建与服务器的连接。在这个单例类中,当我从服务器获得一些消息时,我使用这个
调用视图控制器类方法-(void)callFunction :(NSString *)output
{
if(DEBUG)NSLog(@"Inside Call function");
self.viewController = [[ViewController alloc]init];
[self.viewController Testing:output];
}
然后在视图控制器的类中使用此方法
-(void)Testing:(NSString *)test
{
if([test caseInsensitiveCompare:@"Blue"] == NSOrderedSame)
{
self.view.backgroundcolor =[UIColor bluecolor];
}
}
但这不会改变背景的颜色。如果在这个'If'条件下调用另一个视图控制器,它会给我一个警告
警告:尝试在<some memory address>
上显示UINavigationController:其视图不在窗口层次结构中