2013-08-18 69 views
0

我正在開發一個twitter應用程序,我想在發送後立即顯示tweet。我試圖使用reloadData,但它不起作用。誰能幫我?謝謝!如何在發送推文後顯示推文?

這裏是我的代碼:

- (IBAction)postNewTweet:(id)sender { 
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) 
{ 
    SLComposeViewController *tweetSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 
    [tweetSheet setInitialText:@""]; 

    [self presentViewController:tweetSheet animated:YES completion:nil]; 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     [self.tweetTableView reloadData]; 
    }); 

} 
else 
{ 
    UIAlertView *alertView = [[UIAlertView alloc] 
           initWithTitle:@"Sorry" 
           message:@"You can't send a tweet right now, make sure your device has an internet connection and you have at least one Twitter account setup" 
           delegate:self 
           cancelButtonTitle:@"OK" 
           otherButtonTitles:nil]; 
    [alertView show]; 
} 
} 

回答

1

火焰,你在呈現撰寫片之後重新加載表視圖,所以重裝表那裏 - 你是路過完成塊作爲零,所以沒有什麼將在用戶完成推文時發生。

此外,您需要確保您不僅重新加載表,還要重新加載數組或其他tweetTableView源的其他對象。

例如:

當調用鳴叫撰寫片:

[self presentViewController:tweetSheet animated:YES completion:^(SLComposeViewControllerResult result) 
{ 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     [self reloadTweets]; 
    }); 
}]; 

然後,重新加載鳴叫源才把表

-(void)reloadTweets 
{ 
    tweetsArray = .... //load the tweets from the internet, and only then reload the table 

    [self.tweetTableView reloadData]; 
}