我正在尝试在我的应用程序中实现Twitter共享。
当用户点击 Twitter 按钮时,将调用以下方法:
TWTRComposer *composer = [[TWTRComposer alloc]init];
//here I configure the composer
if ([[Twitter sharedInstance].sessionStore hasLoggedInUsers]) {
[composer showFromViewController:self completion:nil];
} else {
[[Twitter sharedInstance] logInWithCompletion:^(TWTRSession *session, NSError *error) {
if (session) {
[composer showFromViewController:self completion:nil];
} else {
//error handling
}
}];
}
现在我看到的情况是: 当有登录用户时,将显示一个共享对话框,如预期的那样。 但是,如果没有登录用户,则会显示一个对话框,以允许用户登录(预期)。成功登录后(我确实有一个会话),没有显示作曲家(不是预期的)。
再次点击Twitter按钮确实呈现了作曲家。
我的逻辑哪里出错了。 如果您需要更多信息、日志记录等,请告诉我
好的,所以我认为问题是
[composer showFromViewController:self completion:nil];
在登录块中不起作用,因为"self"被解雇了。
为了解决这个问题,我现在从rootviewcontroller中呈现作曲家,如下所示
[composer showFromViewController:rootController completion:nil];
其中根控制器定义为
MyViewController *rootController = (MyViewController*)[[(myAppDelegate*)[[UIApplication sharedApplication]delegate] window] rootViewController];