0

我正在使用故事板构建文章阅读应用程序。

我也在使用 AMSlideMenu Library 作为主菜单。我面临一个问题,即当用户单击 AMSlideMenu 中的不同行时,我想传递不同的 url 值。

这是我的故事板: 在此处输入图像描述

这是我的代码:

   -(NSString *)segueIdentifierForIndexPathInLeftMenu:(NSIndexPath *)indexPath
{
NSString *idetifier = @"firstSegue";
 //   ysTableViewController *str;

switch (indexPath.row) {
    case 0:
        urlString  = @"http://example.com/1";
        break;
    case 1:
                urlString  = @"http://example.com/2";
        break;
    case 2:
                     urlString  = @"http://example.com/3";
        break;
        default:
                     urlString  = @"http://example.com/4";
        break;

}

return idetifier;
}


- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Make sure your segue name in storyboard is the same as this line
    if ([[segue identifier] isEqualToString:@"firstSegue"])
    {
        ysTableViewController *controller = (ysTableViewController *)segue.destinationViewController;
        NSLog(@"asgasfg-----%@",urlString);
        controller.Mainlinks = urlString;
    }
}
4

3 回答 3

0

您可以在 prepareForSegue 方法中创建一个新的 UIViewController。

— YourTableViewController *newObj= [[YourTableViewController alloc]init]; - newObj.value=@"你的价值";

通过这种方式,你可以传递你的价值。

于 2014-11-29T06:15:03.543 回答
0

我通过暂时使用 NSUserDefaults 解决了这个问题,但它仍然不是一个合适的解决方案。仍在寻找一种适当的方法来传递参数 b/w 类。

于 2014-12-01T10:23:15.810 回答
0

AMSlideMenuLeftTableViewController创建or的子类AMSlideMenuRightTableViewController(如果您还没有),并实现以下方法

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    UINavigationController *destNC = segue.destinationViewController;
    UIViewController *destVC = nc.viewControllers.firstObject;

    if ([segue.identifier isEqualToString:@"firstSegue"])
    {
       FirstViewController *vc = (FirstViewController *)destVC;
       // pass your data to vc 
       // e.g.
       vc.title = @"I'm from first row";
    } else if ([segue.identifier isEqualToString:@"secondSegue"]) {
       // same for others  
       //...
    }
}
于 2014-12-25T11:16:41.407 回答