我遇到 SWRevealViewController 的问题 nil ,
请参阅下面的解释。
说明:
我的2个屏幕有2个菜单 View1 , View2 。
View1 是一个表格视图,其中我使用了自定义单元格,我在自定义单元格中添加了一个按钮。
因此,当我点击该按钮时它会跳转到 View2 ,但滑块导航不起作用。
因为
SWRevealViewController *revealViewController = self.revealViewController;
在 View2
这是我在UITableViewCell
类
UIViewController *view = [[[UIApplication sharedApplication] keyWindow] rootViewController];
View2* mapviewController = [view.storyboard instantiateViewControllerWithIdentifier:@"MapView"];
[view presentViewController:mapviewController animated:NO completion:^{}];
我在 View2
中编写的代码SWRevealViewController *revealViewController = self.revealViewController;
if ( revealViewController ) {
[self.btnMenu setTarget: self.revealViewController];
[self.btnMenu setAction: @selector( revealToggle: )];
[self.view addGestureRecognizer:self.revealViewController.tapGestureRecognizer];
self.revealViewController.rearViewRevealWidth = self.view.frame.size.width - 100;
}
如果有人可以帮我解决这个问题,那将会很棒。
提前致谢。
Mihir Oza
答案 0 :(得分:0)
您可以在tableViewDidSelectRow方法中传递坐标,如下所示:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
MapViewController *objMapVC = [self.storyboard instantiateViewControllerWithIdentifier:@"MapViewController"];
objMapVC.currentCord = CLLocationCoordinate2DMake(123.12345, 23.2345);
[self presentViewController:objMapVC animated:YES completion:^{
}];
}
或者如果您的表格单元格中有按钮,那么请在按钮中指定索引,如下所示:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.yourButton.tag = row;
return cell;
}
现在在按钮操作中执行以下操作:
-(IBAction)btnMapClick:(UIButton *)sender{
MapViewController *objMapVC = [self.storyboard instantiateViewControllerWithIdentifier:@"MapViewController"];
objMapVC.currentCord = Array[sender.tag];
[self presentViewController:objMapVC animated:YES completion:^{
}];
}
还要在MapViewController中定义一个属性,如下所示:
@interface MapViewController : UIViewController
@property (nonatomic) CLLocationCoordinate2D currentCord;
@end
通过执行上述2步,您可以将选定的坐标传递给下一个MapVC。
答案 1 :(得分:0)
最新答案,
在帕特里克的帮助下,我解决了这个问题。
在我的表格视图控制器中:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CustomCell" forIndexPath:indexPath];
// Configure the cell...
cell.rvc = self.revealViewController;
cell.title.text = @"Your title";
return cell;
}
在我的自定义单元格中:
@interface CustomTableViewCell : UITableViewCell
@property (nonatomic,strong) SWRevealViewController *rvc;
@property (nonatomic,strong) IBOutlet UILabel *title;
@property (nonatomic,strong) IBOutlet UIButton *button;
@end
@implementation CustomTableViewCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
[self.button addTarget:self action:@selector(buttonTaped:) forControlEvents:UIControlEventTouchUpInside];
}
- (void)buttonTaped:(void *)sender {
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"MapView"];
[self.rvc pushFrontViewController:vc animated:YES];
}
下面是完整链接,可能对某人有用:
Present from one VC to another