在ios中的prepare for segue方法中传递数据时,如何在不调用方法didSelectedRow的情况下获得



在slidebar表视图中,控制器代码类似

- (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标识符。

使用此代码:

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

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

在prepareForSegue中传递数据时使用如下:

  x[row1]; 

最新更新