嗨朋友们在我的项目中开发的iphone应用程序中是新手,我正在使用storyboards
我有一项任务需要在点击viewController
时进行身份验证以加载tableViewCell
。我已经将UITableViewCell
子类化了,我从该单元格创建了segue
到viewController
。
现在问题是我需要在单击单元格时验证控制器。如果用户没有登录它应该转到登录控制器,否则它应该去活动控制器。我已在NSUserDefaults
中保存了用户详细信息。但我不知道如何在cellForRowAtIndexPath
UITableViewCell
中对其进行身份验证
这是配置单元格的代码:
else if(indexPath.row == 4) {
static NSString *simpleTableIdentifier4 =@"MenuDetails4";
activismCell *cell4 = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier4 forIndexPath:indexPath];
cell4.imgactivism.image= [UIImage imageNamed:@"icon5.png"];
cell4.activism.text = localize(@"some.activism");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if([defaults objectForKey:@"firstname"]!=NULL && [defaults objectForKey:@"lastname"]!=NULL) {
[self performSegueWithIdentifier:@"goto" id:indexpath];
}
else if ([defaults objectForKey:@"firstname"] ==NULL && [defaults objectForKey:@"lastname"]==NULL) {
[self performSegueWithIdentifier:@"login" id:indexpath];
}
return cell4;
如果用户已经登录,则单击该特定tableViewCell时应该转到activity ViewController
否则它应该转到登录视图控制器。
请帮我怎么做。提前致谢
答案 0 :(得分:2)
您不在方法cellForRowAtIndexPath
中执行segue,您需要将此代码放在方法中:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if([defaults objectForKey:@"firstname"]!=NULL && [defaults objectForKey:@"lastname"]!=NULL){
[self performSegueWithIdentifier:@"goto" id:indexpath];
}
else if ([defaults objectForKey:@"firstname"] ==NULL && [defaults objectForKey:@"lastname"]==NULL) {
[self performSegueWithIdentifier:@"login" id:indexpath];
}
}
在此方法中,您可以检查nsuserdefaults,然后相应地执行segue。
答案 1 :(得分:0)
您好,如果您想在选择特定行后移动。那么您需要实现tableView的这种方法。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//You can apply your logic of selected row.
ViewControllerName *VC=[self.storyboard instantiateViewControllerWithIdentifier:@"ViewControllerName"];
aboutUsVC.strQuote=[quoteArry objectAtIndex:[indexPath row]];
[self.navigationController pushViewController:VC animated:YES];
//This one for presenting the viewController modally
//[self presentViewController:VC animated:YES completion:nil];
}
由于