0

好的,所以我正在构建与以前构建的相同的项目,但现在我想使用故事板。我不能使用 initWithNibName 因为我当然只有 1 个故事板。

这是方法

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    ViewController2 *ViewController22 = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil]; // What to do instad of that nib thing?


    ViewController22.pickedRoww = indexPath.row;

    [[self navigationController] pushViewController:ViewController22 animated:YES];
}
4

2 回答 2

1

使用故事板处理导航的建议方法是使用 segue。这是一个很棒的教程,向您展示如何设置它

基本上,您在情节提要中创建一个从表视图控制器到 ViewController2 的 segue。然后,在 didSelectRowAtIndexPath 中,您调用[self performSegueWithIdentifier:@"mySegueId"];.

于 2013-06-07T16:55:53.850 回答
0

最好的方法是使用 Segue 并设置您需要在那里设置的值。特别是在推送而不是模式时。尽管我需要为我没有 nib 或 segue 的情节提要中的一个视图弹出模态视图控制器,但我遇到过一些情况。仍然有办法做到这一点,我想我也会给你这些信息以防万一。在我的一个应用程序中,我有这段代码可以从带有按钮的警报表中调用,基本上我想展示一个带有最后一个纬度和经度的模态视图控制器,以便我可以设置一个新的地理围栏区域。

我的代码如下所示:

-(void)createNewRegion
{
    UIStoryboard *mainboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

    UINavigationController *newRegionNavController = [mainboard instantiateViewControllerWithIdentifier:@"newRegionNav"];

    AlertDetailViewController *detailView = [newRegionNavController.viewControllers objectAtIndex:0];

    //[detailView setupTableForNewRegion];

    [self presentViewController:newRegionNavController animated:YES completion:^(void){
        [detailView setupTableForNewRegion];
        detailView.longitude = self.lastLong;
        detailView.latitude = self.lastLat;
        detailView.mainController = self;
    }];
}

所以几乎与从 nib 实例化视图控制器的旧方法完全相同,只是这次你只是从情节提要中进行。希望对一些人有所帮助。

于 2013-06-08T00:38:28.233 回答