Ios 我无法从应用程序委派显示viewcontroller

Ios 我无法从应用程序委派显示viewcontroller,ios,objective-c,Ios,Objective C,代码: - (IBAction)twilioCall:(UIButton *)sender { AppDelegate *appdel=(AppDelegate *)[[UIApplication sharedApplication]delegate]; [appdel goNativeStoryboardToTwilio]; } Warning: Attempt to present <DummyViewController: 0x1565f9910> on <UI

代码:

- (IBAction)twilioCall:(UIButton *)sender {
  AppDelegate *appdel=(AppDelegate *)[[UIApplication sharedApplication]delegate];
  [appdel goNativeStoryboardToTwilio];
}
Warning: Attempt to present <DummyViewController: 0x1565f9910> on <UIViewController: 0x157831460> whose view is not in the window hierarchy!
Appdelegate.h

- (void)goNativeStoryboardToTwilio;
Appdelegate.m

-(void)goNativeStoryboardToTwilio {

  DummyViewController *vc = [[UIStoryboard storyboardWithName:@"NativeStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"dummy"];
  [self.window.rootViewController presentViewController:vc animated:true completion:nil];
}
-(void)goNativeStoryboardToTwilio {
  double delayInSeconds = 10.0;
  dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
  dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    DummyViewController *vc = [[UIStoryboard storyboardWithName:@"NativeStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"dummy"];
    [self.window.rootViewController presentViewController:vc animated:true completion:nil];
  });
}
RoomInputToolbarView.m:

- (IBAction)twilioCall:(UIButton *)sender {
  AppDelegate *appdel=(AppDelegate *)[[UIApplication sharedApplication]delegate];
  [appdel goNativeStoryboardToTwilio];
}
Warning: Attempt to present <DummyViewController: 0x1565f9910> on <UIViewController: 0x157831460> whose view is not in the window hierarchy!
RoomInputToolbarView.xib:

- (IBAction)twilioCall:(UIButton *)sender {
  AppDelegate *appdel=(AppDelegate *)[[UIApplication sharedApplication]delegate];
  [appdel goNativeStoryboardToTwilio];
}
Warning: Attempt to present <DummyViewController: 0x1565f9910> on <UIViewController: 0x157831460> whose view is not in the window hierarchy!

结果:

- (IBAction)twilioCall:(UIButton *)sender {
  AppDelegate *appdel=(AppDelegate *)[[UIApplication sharedApplication]delegate];
  [appdel goNativeStoryboardToTwilio];
}
Warning: Attempt to present <DummyViewController: 0x1565f9910> on <UIViewController: 0x157831460> whose view is not in the window hierarchy!

即使现在我也得到了同样的结果。但是,在该视图控制器中打印的所有日志都将被打印,只有屏幕没有改变。有人能给我一个解决方案吗?

问题是,你在VC完全进入窗口之前就提前调用present,所以你需要延迟,或者在ViewController的覆盖方法中延迟它

为什么你要在应用程序中呈现controller delegate?我想你错过了这一行。[WindowMakeKeyandVisible];请在上面的方法中也添加此项,然后检查。显示您在哪里调用此方法
GonativeStoryBoardTotwillio
Hi@RahulGUsai,我正在尝试从对象文件调用视图控制器,因此我使用app delegate来表示该虚拟视图控制器。Hi@zero,正如您所要求的,我已编辑了我的上述问题。请检查一下。我可以知道你说的是哪个视图控制器吗。是关于appdelegate还是我创建的虚拟视图控制器?