2012-12-06 107 views
1

嗨,我面临一个奇怪的问题。我有一个类是NSObject类型,并在同一班,我想分享在Facebook和电子邮件,也在Twitter上的形象。我成功地完成了FB和电子邮件,在电子邮件我使用[[[UIApplication sharedApplication] keyWindow] addSubview:mailer.view];显示邮件控制器到窗口instread的呈现模型视图控制器和相同的关闭我使用从超级视图中删除。但是当我与Twitter控制器做同样的事时,twitter控制器只显示我几毫秒,然后隐藏。我还将新的视图控制器添加到窗口,然后将其控制器呈现在该视图控制器上,但输出相同。不知道发生了什么问题。请帮忙。提前致谢。这对我来说是巨大的:)将视图添加到Twitter的窗口

编辑

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"); 
} 

我用添加子视图,而不是负荷提示视图的视图。

+0

后一些更多的代码,以便更容易帮助你 –

+0

正是你想要在代码中看到的。我正在做同样的加载twitter视图。只是几个改变我使用addsubview而不是呈现视图。检查我编辑的问题我添加代码来加载视图的Twitter。 – josh

+0

这是显示视图的一种非常糟糕的方式,因为您搞乱了ViewController的所有权。为什么你不能在第一时间进行模态演示? –

回答

1

你有没有试过这种

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

谢谢Sumanth,我得到了答案。只需改变你的代码和加载twitter控制器。 这是我做的。 UIWindow * window = [UIApplication sharedApplication] .keyWindow; window.rootViewController = controller; – josh

+0

rootViewController在iOS 4之前不会工作,但addSubView/rootViewController几乎与使用相同。 – Sumanth

+0

是的,现在得到问题删除这个,我这样做是为了消除。 [controller removeFromParentViewController] ;.是好的,还是我应该使用其他的东西,因为它不工作。 – josh