【问题标题】:Dealing with Delegates in Separate UIViewController(s)在单独的 UIViewController(s) 中处理委托
【发布时间】:2013-11-08 14:58:51
【问题描述】:

我目前正在开发一款 Sprite Kit 游戏,但在设置/使用代理时遇到了一些问题。我知道代表如何工作以及所有这些,但我试图让用户能够玩我的游戏,一旦他们按下暂停按钮,让游戏暂停。然后,我有一个 UIAlertView 出现,要求“恢复游戏”或“注册”时事通讯类型的东西。我有一个网站,我有一个新的 UIViewController 出现在下面,当视图控制器打开时,我希望游戏暂停,就是这样。我的问题是当我完成网站后,我希望游戏能在那时恢复。我的问题:

  • 用户点击网站上的“关闭”按钮后,关闭 UIViewController,然后设置 SKScene.paused = no。

这是我如何去做的代码。

// in the view controller class
- (IBAction)closeWebsite {
[self dismissViewControllerAnimated:YES completion:nil];
[self.delegate closeWebsiteAndResumeGame];
}

这是我的主 UIViewController 类的代码,它会暂停游戏。

// in the main view controller
@interface ADViewController () <ADWebViewViewControllerDelegate>

- (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
NSString *title = [ alertView buttonTitleAtIndex:buttonIndex];
if ([title isEqualToString:@"Resume Game"]) {
    _gamePlay.scene.paused = NO;
}
else {
    // here i load the other viewController
    ADWebViewViewController *webView;
    webView.delegate = self;

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
        webView = [[ADWebViewViewController alloc] initWithNibName:@"ADWebViewViewController_iPhone" bundle:nil];
    }
    else {
        webView = [[ADWebViewViewController alloc] initWithNibName:@"ADWebViewViewController_iPad" bundle:nil];
    }
    [self presentViewController:webView animated:YES completion:nil];

}
//_gamePlay.scene.paused = NO;
}

- (void) closeWebsiteAndResumeGame {
   _gamePlay.scene.paused = NO;
}

感谢所有帮助

【问题讨论】:

    标签: ios objective-c uiviewcontroller delegates uialertview


    【解决方案1】:

    我找到了答案。我不需要使用委托。我所要做的就是在 Interface Builder 中链接一些项目,它工作得很好:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 2017-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多