如何在ios中准备segue方法时传递数据而不调用方法didSelectedRow来获取静态tableview的索引路径

时间:2015-02-23 12:23:04

标签: ios

侧栏表视图中的

控制器代码就像

- (void)loginDone:(UIButton*)sender
{

    if (sender.tag == 1) {

        [self performSegueWithIdentifier:@"postad" sender:sender];
    }
    else if (sender.tag == 2) {

        [self performSegueWithIdentifier:@"wishlist" sender:sender];
    }
    else if (sender.tag == 3) {

        [self performSegueWithIdentifier:@"recentlyviewed" sender:sender];
    }
    else {
        [self performSegueWithIdentifier:@"profile1" sender:sender];
    }
}
- (IBAction)btn_profile:(id)sender
{

    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isLogin"]) {

        [self performSegueWithIdentifier:@"profile1" sender:sender];
    }
    else {

        [self performSegueWithIdentifier:@"signin" sender:sender];
    }
}

- (IBAction)btn_postAdButton:(id)sender
{

    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isLogin"]) {

        [self performSegueWithIdentifier:@"postads" sender:sender];
    }
    else {

        [self performSegueWithIdentifier:@"signin" sender:sender];
    }
}

- (IBAction)btn_Wishlist:(id)sender
{

    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isLogin"]) {

        [self performSegueWithIdentifier:@"wishlist" sender:sender];
    }
    else {

        [self performSegueWithIdentifier:@"signin" sender:sender];
    }
}

- (IBAction)btn_recentlyViewed:(id)sender
{

    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isLogin"]) {

        [self performSegueWithIdentifier:@"recentlyviewed" sender:sender];
    }
    else {

        [self performSegueWithIdentifier:@"signin" sender:sender];
    }
}

[_lbl_errormsg setText:errormsg];
NSUserDefaults* userData = [NSUserDefaults standardUserDefaults];
[userData setBool:YES forKey:@"isLogin"];
NSLog(@"data sotre");
[user

        Data synchronize];

if (self.delegate != nil && [self.delegate respondsToSelector:@selector(loginDone:)]) {
    [self.delegate loginDone:sender];
}
[self dismissViewControllerAnimated:YES completion:nil];
}

- (void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender
{

    if ([segue.identifier isEqualToString:@"signin"]) {

        UINavigationController* nav = segue.destinationViewController;

        SignInViewController* objSigninViewcontroller = (SignInViewController*)nav.topViewController;

        objSigninViewcontroller.delegate = self;
    }

    in signin view controller loginDone : method is not calling while i am tracing data.

        - (IBAction)btn_signIn : (id)sender
    {

        NSString* email, *pwd, *errormsg;

        email = _txt_email.placeholder;

        pwd = _txt_pwd.placeholder;

        errormsg = nil;

        [_lbl_errormsg setFont:[UIFont systemFontOfSize:12]];

        _lbl_errormsg.textColor = [UIColor colorWithRed:100 green:0 blue:0 alpha:1.0];

        if (_txt_email.text.length < 1 && _txt_pwd.text.length < 1) {

            [_lbl_errormsg setText:[NSString stringWithFormat:@"Enter your %@ and %@", email, pwd]];
        }

        else if (_txt_email.text.length < 1) {

            [_lbl_errormsg setText:[NSString stringWithFormat:@"Enter %@ Address ", email]];

            return;
        }

        else if (_txt_email.text.length > 0) {

            if (![_txt_email.text isvalidEmail]) {

                [_lbl_errormsg setText:[NSString stringWithFormat:@"Enter your valid %@", email]];

                return;
            }

            else {

                [_lbl_errormsg setText:errormsg];

                NSUserDefaults* userData = [NSUserDefaults standardUserDefaults];

                [userData setBool:YES forKey:@"isLogin"];

                [userData synchronize];

                `if (self.delegate != nil && [self.delegate` respondsToSelector:@selector(loginDone:)])
                {

                    [self.delegate loginDone:sender];
                }

                [self dismissViewControllerAnimated:YES completion:nil];
            }

            if (_txt_pwd.text.length > 1) {

                if (![_txt_pwd.text isvalidPassword]) {

                    [_lbl_errormsg setText:[NSString stringWithFormat:@"Please Enter atleast 6 character for %@", pwd]];
                }

                else {

                    [_lbl_errormsg setText:errormsg];
                }
            }

            else {

                [_lbl_errormsg setText:[NSString stringWithFormat:@"Please Enter for %@", pwd]];
            }
        }

        else

            [_lbl_errormsg setText:[NSString stringWithFormat:@"Enter your %@ Address", email]];
    }

我在每个单元格上放了按钮并给出了segue标识符。

1 个答案:

答案 0 :(得分:0)

使用此代码:

NSIndexPath *myindexpath1 = [self.tableView indexPathForSelectedRow];
    long row1 = [myindexpath1 row];

这为您提供了行的索引路径。

虽然在prepareForSegue中传递数据,但使用如下:

  x[row1];