2012-12-06 177 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