我是iOS及其开发的新手。我有tableview和两个单元格。当我按下想要重定向到viewController对象的单元格时。我想根据segue标识符来做。请在代码下面找到我用过。
#import "Essentialinfocontroller.h"
@interface Essentialinfocontroller ()
{
NSMutableArray * titlearray;
NSMutableArray * subtitilearray;
}
@end
@implementation Essentialinfocontroller
@synthesize info;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil\];
if (self) {
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.info.delegate=self;
self.info.dataSource=self;
titlearray =[[NSMutableArray alloc]initWithObjects:@"Custom",@"Department Of Immigration",@"Foriegn Currency Regulations",@"Sri Lankan Embassies" ,@"Sri Lankan Visa",@"When You Are There..", nil];
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [titlearray count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString * cellidentifier=@"cell";
UITableViewCell * cell= [info dequeueReusableCellWithIdentifier:cellidentifier forIndexPath:indexPath];
cell.textLabel.text =[titlearray objectAtIndex:indexPath.row];
return cell;
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"custom"])
{
//redirected to Viewcontroller custome
}
else if([segue.identifier isEqualToString:@"depart"])
{
// redirected to viewController Department
}
}
@end][1]
答案 0 :(得分:1)
在您想要转换到新控制器的位置使用此方法。
[self performSegueWithIdentifier:@"yourSegueIdentifierName" sender:nil];
一旦遇到上述语句并且如prepareForSegue
方法中所述,此方法将自动触发prepareForSegue
方法,您正在使用if..else检查segue标识符名称,以便做到这一点。
请按照以下步骤操作:
didSelectRowAtIndexPath
委托方法检查tableView中的哪一行被单击。这是为了知道我们将为特定行使用哪个segue标识符。现在你有了selectedRow索引。所以我们进入下一步。在知道单击哪一行后,使用此功能通过源控制器中的segue Identifer重定向到相应的控制器。
[self performSegueWithIdentifier:@“yourSegueIdentifierName”sender:nil];
调用performSegueWithIdentifier
后,prepareForSegue
会立即调用{{1}}。就像你现在所做的那样,你可以检查segue标识符并使用你自己的逻辑,如果是...... else代码。