【问题标题】:Adding view onto Window of Twitter在 Twitter 的窗口上添加视图
【发布时间】:2012-11-24 06:09:58
【问题描述】:

您好,我遇到了一个奇怪的问题。我有一个NSObject 类型的课程,在同一个课程上,我想在 Facebook 和电子邮件以及 Twitter 上分享图像。我成功地完成了 FB 和电子邮件,在电子邮件上我使用[[[UIApplication sharedApplication] keyWindow] addSubview:mailer.view]; 将邮件控制器显示到呈现模型视图控制器的窗口 instread 上,并且与在关闭时相同,我使用从超级视图中删除。但是当我对 twitter 控制器执行相同操作时,twitter 控制器只会显示几毫秒然后隐藏。我还将新的 View 控制器添加到 Window 上,然后将其控制器呈现到该 View 控制器上,但输出相同。不知道怎么回事。请帮忙。提前致谢。这对我来说很棒:)

已编辑

 if (_engine != nil) {
    _engine = nil;
    [_engine release];
}    
_engine = [[SA_OAuthTwitterEngine alloc] initOAuthWithDelegate: self];
_engine.consumerKey = kOAuthConsumerKey;
_engine.consumerSecret = kOAuthConsumerSecret;

UIViewController *controller = [SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine:_engine delegate: self];

if (controller) {
    NSLog(@"Sharing on Twitter on loading controller of twitter");
     [[UIApplication sharedApplication].keyWindow addSubview:controller.view];

}
else {
    NSLog(@"Sharing on Twitter in else condition");
    [self sharetoTwitter:screenImg];
} 

ShareToTwitterMethod

- (void) sharetoTwitter:(UIImage *)img {
NSString *response = [_engine _uploadImage:img requestType:MGTwitterPublicTimelineRequest responseType:MGTwitterStatus]; 
NSLog(@"twitter post notification");
}

我使用 Add subview 来加载视图而不是 Presenting View。

【问题讨论】:

  • 发布更多代码,以便更容易为您提供帮助
  • 你想在代码中看到什么。我正在做同样的事情来加载 Twitter 视图。只是我使用 addsubview 而不是呈现视图进行了一些更改。检查我已编辑的问题,我添加代码以加载 twitter 视图。
  • 这是一种非常糟糕的显示视图的方式,因为您正在搞乱 ViewController 的所有权。为什么一开始就不能接受模态演示?
  • 实际上我正在开发一个 Unity 应用程序,并将 unity 与 xcode 集成,所以在编译完 unity 后会给我 NSObject 类型的类,所以我一定会这样做。正如我提到的,我在 Window 上添加了一个视图控制器,然后呈现 twitter 控制器,但输出相同。不知道如何解决这个问题。如果您知道或有任何想法,请帮助我。谢谢
  • 您检查过 Unity 开发网络吗?例如:answers.unity3d.com/questions/40494/…

标签: iphone ios xcode twitter uiwindow


【解决方案1】:

你试过了吗

UIWindow *window = [[UIApplication sharedApplication] keyWindow];
[window addSubView:controller.view];
[window makeKeyAndVisible];//important line dont forget to set this line

【讨论】:

  • 谢谢 Sumanth,我得到了答案。只需更改您的代码并加载 twitter 控制器。这就是我所做的。 UIWindow *window = [UIApplication sharedApplication].keyWindow; window.rootViewController = 控制器;
  • rootViewController 在 iOS 4 之前将无法使用。但是 addSubView/rootViewController 几乎可以使用。
  • 是的,现在删除这个问题,我这样做是为了删除。 [控制器 removeFromParentViewController];。可以吗,还是我应该使用其他东西,因为它不起作用。
  • 工作,只需执行 [controller.view removeFromSuperview];我是多么愚蠢:p
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多