Ios 正在进行转换时尝试开始模式转换
我正在检查用户是否登录到Facebook。如果是,我想将它们转移到另一个视图 我遇到的问题是,Ios 正在进行转换时尝试开始模式转换,ios,facebook,uiviewcontroller,Ios,Facebook,Uiviewcontroller,我正在检查用户是否登录到Facebook。如果是,我想将它们转移到另一个视图 我遇到的问题是,loginViewFetchedUserInfo和loginViewShowingLoggedInUser都是在视图实际加载之前调用的 因此,当调用[self showWelcome:self]时,我得到一个“试图在转换过程中开始模式转换”错误 我似乎想不出一种方法来等待视图加载完成后再将其发送到新视图 - (void)loginViewShowingLoggedInUser:(FBLoginView
loginViewFetchedUserInfo
和loginViewShowingLoggedInUser
都是在视图实际加载之前调用的
因此,当调用[self showWelcome:self]
时,我得到一个“试图在转换过程中开始模式转换”错误
我似乎想不出一种方法来等待视图加载完成后再将其发送到新视图
- (void)loginViewShowingLoggedInUser:(FBLoginView *)loginView {
// Set flag
isFirstLoginDone = YES;
NSLog(@"User is logged in");
}
- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView
user:(id<FBGraphUser>)user {
// Check first login
if(isFirstLoginDone) {
[self showWelcome:self];
}
// clear the flag
isFirstLoginDone = NO;
}
- (IBAction)showWelcome:(id)sender
{
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"WelcomeStoryboard" bundle:nil];
UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"WelcomeController"];
[self presentViewController:vc animated:YES completion:nil];
}
-(void)loginView显示日志用户:(FBLoginView*)loginView{
//设旗
isFirstLoginDone=YES;
NSLog(@“用户已登录”);
}
-(无效)loginView蚀刻教育信息:(FBLoginView*)loginView
用户:(id)用户{
//检查第一次登录
如果(isFirstLoginDone){
[自我展示欢迎:自我];
}
//清除旗帜
isFirstLoginDone=否;
}
-(iAction)showWelcome:(id)发件人
{
UIStoryboard*mainStoryboard=[UIStoryboard Storyboard with name:@“WelcomeStoryboard”bundle:nil];
UIViewController*vc=[MainstryBoard实例化ViewController的标识符:@“WelcomeController”];
[自我呈现视图控制器:vc动画:是完成:无];
}
是的,当您在显示某个viewController的同时显示另一个viewController时,会发生这种情况。为此,创建一个伪方法,如下代码所示,并以较小的时间间隔启动它
- (IBAction)showWelcome:(id)sender{
[self someMethod];
}
-(void)someMethod{
if(self.isBeingPresented){
[self performSelector:@selector(someMethod) withObject:nil afterDelay:.1];
}
else{
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"WelcomeStoryboard" bundle:nil];
UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"WelcomeController"];
[self presentViewController:vc animated:YES completion:nil];
}
}