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

AMSlideMenuLeftTableViewControllerorのサブクラスを作成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 に答える
0

一時的に NSUserDefaults を使用して問題を解決しましたが、それでも適切な解決策ではありません。パラメーターを b/w クラスに渡す適切な方法をまだ探しています。

于 2014-12-01T10:23:15.810 に答える
0

prepareForSegue メソッド内で新しい UIViewController を作成できます。

— YourTableViewController *newObj= [[YourTableViewController alloc]init]; - newObj.value=@"あなたの値";

このようにして、値を渡すことができます。

于 2014-11-29T06:15:03.543 に答える