iOS 首次发布节目条款和条件

Posted

技术标签:

【中文标题】iOS 首次发布节目条款和条件【英文标题】:iOS First Launch show Terms and Conditions 【发布时间】:2014-05-02 22:19:38 【问题描述】:

我需要以下代码的帮助。我的目标是显示 UIViewController “条款”(已经存在于我的 Storyboard 中,并且我已经在 Storyboard ID 中指定了名称术语)。如果应用程序已经打开并且用户接受了 T&C,则显示正常的 UIViewController。

FIRSTVIEWCONTROLLER.H

#import <UIKit/UIKit.h>

@interface FirstViewController : UIViewController

@end

@interface First : UIViewController

@end

@interface Terms: UIViewController

@end

FIRSTVIEWCONTROLLER.M

#import "FirstViewController.h"

@interface FirstViewController ()

@end

@implementation FirstViewController

- (void)viewDidLoad: (BOOL)animated

    [super viewDidLoad];



    NSUserDefaults * standardUserDefaults = [NSUserDefaults standardUserDefaults];

    BOOL isAccepted = [standardUserDefaults boolForKey:@"iHaveAcceptedTheTerms"];

    if (!isAccepted) 
        [self presentViewController:Terms animated:YES completion:nil];
     else 
        [self.navigationController pushViewController:First animated:YES];
    



- (void)didReceiveMemoryWarning

    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.


@end

事实上,我收到 2 个错误:“意外的接口名称 'Terms'/'First': 预期的表达式”。

请看故事板:http://i.stack.imgur.com/bi6aT.png

请帮帮我。 xcode初学者。

【问题讨论】:

您在哪里看到错误?指出给您带来问题的确切代码。 您的故事板看起来很奇怪,因为您没有指向条款的箭头,而您有很多指向标签栏控制器的箭头。这一切似乎都颠倒了(但我不知道它打算做什么)。如果一个 XCode/storyboards 的初学者从一个视图控制器开始,运行它,然后添加另一个并再次运行,然后添加另一个并再次运行等等。慢慢地构建它 @rmaddy 错误出现在[self presentViewController:Terms animated:YES completion:nil];[self.navigationController pushViewController:First animated:YES]; 谢谢。 您正在尝试传递类的名称,而不是创建视图控制器的实例。 【参考方案1】:

首先,从 .h 中删除这些行,因为它们是不必要的:

@interface First : UIViewController

@end

@interface Terms: UIViewController

@end

其次,您的 Storyboard 看起来不太正确...从 FirstViewController,您需要在视图和两个潜在的后续视图控制器之间创建 segues,即“First”和“Terms”,使用方法 I '在这里指定:https://***.com/a/20690072/2274694;然后用标识符标记这些segues。

这样,如果您想根据条款是否已被接受而转至相关视图控制器,您可以使用相关标识符执行转场,例如:

if (!isAccepted) 
    [self performSegueWithIdentifier:@"firstSegue" sender:self];
 else 
    [self performSegueWithIdentifier:@"termsSegue" sender:self];

【讨论】:

“termsSegue”从哪里开始?我的意思是从哪个动作开始的? 不要将它与情节提要中的特定动作联系起来......只需创建一个一般的转场。我在这个答案中解释了如何:***.com/a/20690072/2274694。这样,segue 将发生在您在 viewDidLoad 中指定的位置。

以上是关于iOS 首次发布节目条款和条件的主要内容,如果未能解决你的问题,请参考以下文章

如何使条款和条件仅在我首次登录 Google 时显示?

如何在 Play 管理中心向我的应用添加条款和条件?

Google Play 游戏服务

应用因“元数据中缺少条款和条件”而被拒绝

在 Cognito 托管 UI 中添加指向条款和条件的链接

复选框验证,如我同意条款和条件 jquery