我需要以下代码的帮助。我的目的是展示UIViewController“条款”(已存在于我的故事板中,并且我在故事板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个错误:“意外的接口名称'条款'/'第一个':预期的表达”。
请查看故事板:http://i.stack.imgur.com/bi6aT.png
请帮帮我。 xcode初学者。
答案 0 :(得分:0)
首先,从.h中删除这些行,因为它们是不必要的:
@interface First : UIViewController
@end
@interface Terms: UIViewController
@end
其次,你的故事板看起来不太正确......从FirstViewController
开始,你需要在视图和两个潜在的后续视图控制器之间创建segues,即“First”和“Terms”,使用我在这里指定的方法:https://stackoverflow.com/a/20690072/2274694;然后用标识符标记这些segues。
这样,如果你想根据条件是否已被接受而转向相关的视图控制器,你可以使用相关的标识符执行segue,例如:
if (!isAccepted) {
[self performSegueWithIdentifier:@"firstSegue" sender:self];
} else {
[self performSegueWithIdentifier:@"termsSegue" sender:self];
}