通过UINavigationController将int变量传递给UITableView

Emy*_*agh 0 iphone objective-c ipad ios

我正在尝试通过UINavigationController将int变量传递给UITableView(我正在使用xcode 4.3)所以我创建了2个类(PartsTableViewController是"UITableViewController"和PartsNavController,它是"UINavigationController"),我想从我当前传递变量类到PartsTableViewController,然后打开该表及其包含标题栏的导航控制器,所以我在当前类中编写了以下代码:

PartsNavController *partsNav = [self.storyboard instantiateViewControllerWithIdentifier:@"partsNav"];  
partsNav.groupId = myGroupp.bg_id;
[self presentModalViewController:partsNav animated:YES];
Run Code Online (Sandbox Code Playgroud)

在我在viewDidLoad中编写的PartsNavController类中:

PartsTableViewController *parts = [self.storyboard instantiateViewControllerWithIdentifier:@"Parts"];
parts.groupId = groupId;
[parts.tableView reloadData];
Run Code Online (Sandbox Code Playgroud)

在我在viewDidLoad中写的PartsTableViewController中:

NSLog(@"This is group: %d", groupId);
Run Code Online (Sandbox Code Playgroud)

但运行时,它会产生2次输出,

This is group:1
This is group:0
Run Code Online (Sandbox Code Playgroud)

第一次是我发送的值,第二次是0,我只想要我发送的值,而不是0我怎么能阻止这个,只得到我发送的值????

在此输入图像描述

我想从(MaktabatyTableViewController)传递到(PartsTableViewController)而不使用segue

Dan*_*eel 5

做你想做的更好的方法是在现有的UINavigationController中推送第二个TableViewController.最简单的方法是在StoryBoard中创建NavContr,而不是在TableViews中创建NavContr,并将其单元与带有segue的前导视图控制器连接.而且使用方法如下:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    UIViewController *destViewController = segue.destinationViewController;
    destViewController.integerValue = value;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述