0

我想在我的 iOS 应用程序启动时问用户一个问题。我有一个视图控制器来显示文本和一个按钮来回答。

我在我的应用程序委托文件中也有这个来检测它是否已经被回答过:

if(![[NSUserDefaults standardUserDefaults] valueForKey:@"questionAnswered"])

我知道如何向更改questionAnswered值的按钮添加方法。

我在上面的 if 语句中放了什么来使视图控制器出现?

4

2 回答 2

1

最好在您的初始视图控制器中检查这一点并显示条款和条件视图。以下将从您的视图控制器初始化并呈现视图:

UIViewController *tncView = [self.storyboard instantiateViewControllerWithIdentifier:@"TermsViewController"];
[tncView setModalInPopover:YES];
[tncView setModalPresentationStyle:UIModalPresentationFormSheet];
[tncView setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];

[self presentViewController:tncView animated:YES completion:NULL];

然后,从您的 T&C 视图控制器中退出:

[self dismissViewControllerAnimated:YES completion:NULL];

更新:如果您为视图使用 .xib 文件,则只需将其初始化为:

termsViewController *tncView = [[termsViewController alloc] initWithNibName:@"termsView" bundle:nil];

termsViewControllerEULA 的视图控制器的类名在哪里,并且termsView是 xib/nib 文件的名称,没有扩展名(iOS 4.0+ 不需要扩展名)。

如果您没有使用 nib/xib 并以编程方式编写视图控制器:

termsViewController *tncView = [[termsViewController alloc] init];

如果使用故事板,您将使用我在上面发布的内容:

    UIViewController *tncView = [self.storyboard instantiateViewControllerWithIdentifier:@"TermsViewController"];

初始化视图控制器后,设置它的显示属性:

[tncView setModalInPopover:YES];
[tncView setModalPresentationStyle:UIModalPresentationFormSheet];
[tncView setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];

最后,提出观点。我会在您的初始视图控制器的viewDidAppear方法中执行此操作:

- (void)viewDidAppear:(BOOL)animated
{
    [self presentViewController:tncView animated:YES completion:NULL];
}

让我知道这是否适合您。

于 2013-03-12T20:52:14.107 回答
0

苹果在 HIG 中声明:

如果您为您的 iOS 应用程序提供最终用户许可协议(或 EULA),App Store 会显示它,以便人们在获得您的应用程序之前可以阅读它。

如果可能,请避免要求用户在首次启动您的应用程序时表明他们同意您的 EULA。在没有显示协议的情况下,用户可以毫不拖延地享受您的应用程序。但是,即使这是首选的用户体验,也可能并非在所有情况下都可行。如果您必须在您的应用程序中显示许可协议,请以与您的用户界面协调一致的方式执行此操作,并将给用户造成的不便降至最低。

如果可能,请在您的应用说明或 EULA 中提供免责声明。用户随后可以在 App Store 中查看免责声明,您可以平衡业务需求和用户体验需求。

Apple 提供了一个在 iTunes Connect 中放置自定义 EULA 的位置。

于 2013-03-12T20:52:58.913 回答