如果我访问Twitter,我宁愿使用自动警报框询问用户进入设置,但无法使其工作并提供我自己的默认对话框,我真的不想这样做。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"indexPath.row %i", indexPath.row);
if (indexPath.row == 0) {
store = [[ACAccountStore alloc] init]; // Long-lived
twitterType = [store accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[store requestAccessToAccountsWithType:twitterType withCompletionHandler:^(BOOL granted, NSError *error) {
if (granted) {
// Access has been granted, now we can access the accounts
twitterAccounts = [store accountsWithAccountType:twitterType];
if (twitterAccounts.count == 1) {
[self getTwitterData:[twitterAccounts objectAtIndex:0]];
} else {
[self selectTwitterAccount];
}
} else {
// Prefer NOT to do this ************************************
[self performSelectorOnMainThread:@selector(showTwitterError) withObject:nil waitUntilDone:NO];
}
}];
}
答案 0 :(得分:1)
据我所知,这只适用于iOS 5.0 - 5.0.1版本。 然后在iOS 5.1中再次折旧
目前没有解决方案......
如果您想使用iOS 5部分:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];
有些more阅读同一主题
答案 1 :(得分:1)
这有点棘手,我删除*TWTWeetComposeViewController*
中的子视图,因此只显示用户未插入时的提醒,点击设置按钮,我们可以在我的应用中打开设置页面
+ (void)setAlertForSettingPage :(id)delegate
{
// Set up the built-in twitter composition view controller.
TWTweetComposeViewController *tweetViewController = [[TWTweetComposeViewController alloc] init];
// Create the completion handler block.
[tweetViewController setCompletionHandler:^(TWTweetComposeViewControllerResult result) {
[delegate dismissModalViewControllerAnimated:YES];
}];
// Present the tweet composition view controller modally.
[delegate presentModalViewController:tweetViewController animated:YES];
//tweetViewController.view.hidden = YES;
for (UIView *view in tweetViewController.view.subviews){
[view removeFromSuperview];
}
}
这里,delegate是你的viewcontroller,如果你在viewcontroller中使用这个方法,只需使用self
而不是delegate
。
我不得不面对同样的问题并找到了这个sollution