假设我有两种类型的用户:学生和教师。我如何才能仅允许教师转到与学生不同的观点,例如
ObjectID UserName Password Type
------- -------- -------- ------
8uJ03j7 user#1 *** student
2835ruJ user#2 *** instructor
2835JhL user#3 *** student
我们说我们有一个学校用的应用程序,学生可以登录并查看他们的成绩,而教师可以输入数据并进行修改。 我问这个问题,因为据我所知,你不能在Parse.com中有两个使用登录类这就是为什么我要区分两种不同类型的用户。 感谢
答案 0 :(得分:1)
我的解释与MannyFle和ismailgulek不同。我的解释:根据登录的用户类型,您希望应用程序自动将其引导至教师和学生的不同视图。没有要隐藏的按钮等。
要实现此目的,您可以在AppDelegate中执行以下操作:
- (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user {
NSString *userType = user[@"type"];
if ([userType isEqualToString:@"instructor"]) {
self.window.rootViewController = instructorViewController;
} else {
self.window.rootViewController = studentViewController;
}
[self.window makeKeyAndVisible];
我确定你已经在你的appdelegate中实现了didLogInUser。在那里检查usertype。无需使用单身,因为您可以在应用中的任何位置使用[PFUser currentUser]
。
当然,在将其设置为rootViewController
之前,您需要在if语句中初始化正确的讲师/ studentview控制器。
答案 1 :(得分:0)
不要试图阻止任何用户登录。我认为这是控制任何事情的一种非常糟糕的方式。您可以扩展PFUser
类并添加一个额外的字段,如type
,并在用户登录后执行任何控制。
答案 2 :(得分:0)
你可以在这里做的是隐藏推动视图的按钮,只有教师才能看到,如果用户登录的是学生类型。
在具有推动视图的按钮的视图中,只有教师可以使用这样做:
在.h文件中,为按钮创建一个属性,按此方式推送视图:
@property (nonatomic,strong) UIButton *buttonThatPushesInstructorView;
在.m文件中:
在视图的viewWillAppear方法中,执行以下检查:
if ([[[PFUser currentUser]objectForKey:@"type"]isEqualToString:@"Instructor"]) {
_buttonThatPushesInstructorView.hidden=NO;
}else{
_buttonThatPushesInstructorView.hidden=YES;
}
这样,当视图加载时,只有“讲师”类型的用户才能访问推送教师视图的按钮。
希望它有所帮助!