我正在使用GLSprite基本代码。我有一个EAGLAppDelegate和一个EAGLView。我尝试将一个navController变量添加到委托:
// AppDelegate.h
@property (nonatomic, strong) UINavigationController *navController;
// AppDelegate.m
@synthesize navController = _navController;
然后在touchesBegan(用于测试)中执行以下操作,但navController为NULL并且没有出现任何内容?我该如何解决这个问题?
GLSpriteAppDelegate *ad = (GLSpriteAppDelegate *)[[UIApplication sharedApplication] delegate];
SLComposeViewController *fbController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result){
[fbController dismissViewControllerAnimated:YES completion:nil];
switch(result){
case SLComposeViewControllerResultCancelled:
default:
NSLog(@"Cancelled.....");
break;
case SLComposeViewControllerResultDone:
NSLog(@"Posted....");
break;
}};
//[fbController addImage:[UIImage imageNamed:@"1.jpg"]];
[fbController setInitialText:@"Test message"];
[fbController addURL:[NSURL URLWithString:@"http://www.test.com"]];
[fbController setCompletionHandler:completionHandler];
[ad.navController presentViewController:fbController animated:YES completion:nil];
答案 0 :(得分:0)
添加变量是不够的,你必须把东西放进去......
您的导航控制器(navController
)为nil
,因为您没有为其指定任何内容。另请注意,如果您想要显示控制器,导航控制器必须在屏幕上。
通常,您应该从当前控制器提供控制器。如果正确构建类,则需要在控制器类中显示控制器的代码。但是,您始终可以通过
访问窗口根控制器[ad.window.rootViewController presentViewController:...]