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 首次发布节目条款和条件的主要内容,如果未能解决你的问题,请参考以下文章