iOS-pushViewController将推送至零视图控制器
我正在尝试在将数据传输到另一个viewController时,在选择后创建一个UITableViewCell。然而,它最终只是推到了一个nil视图控制器 在Main.storyboard中,我创建了视图控制器,并将其命名为“DetailedWeetViewController”类 -显示类和标识符的图像 -图像显示无分段 一切似乎都连接得很好,这是我的代码:iOS-pushViewController将推送至零视图控制器,ios,xcode,uitableview,xcode5,Ios,Xcode,Uitableview,Xcode5,我正在尝试在将数据传输到另一个viewController时,在选择后创建一个UITableViewCell。然而,它最终只是推到了一个nil视图控制器 在Main.storyboard中,我创建了视图控制器,并将其命名为“DetailedWeetViewController”类 -显示类和标识符的图像 -图像显示无分段 一切似乎都连接得很好,这是我的代码: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(N
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSDictionary *currentTweet = _userPosts[indexPath.row];
DetailedTweetViewController *tweetDetailedViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailedTweetStoryboard"];
tweetDetailedViewController.statusID = currentTweet[@"id"];
[self.navigationController pushViewController:tweetDetailedViewController animated:YES];
}
我不知道为什么它不起作用
这是错误的图像:
更新
我尝试在不传递数据的情况下直接推送到视图控制器:
DetailedTweetViewController *detailedViewController = [[DetailedTweetViewController alloc]init];
[self.navigationController pushViewController:detailedViewController animated:YES];
但我没有收到任何错误,只是一个空白屏幕:
更新
初始化了另一个名为viewController
viewController的viewController中具有didSelectRowAtIndexPath
的当前视图控制器
代码如下:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
FeedViewController *feedViewController = [[FeedViewController alloc]init];
feedViewController.currentUserAccount = [_twitterAccounts objectAtIndex:indexPath.row];
feedViewController.navigationItem.hidesBackButton = YES;
[self.navigationController pushViewController:feedViewController animated:YES];
}
像这样获取故事板而不是self.storyboard
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];// Find name of storyboard in your project plist
DetailedTweetViewController *tweetDetailedViewController = [storyboard instantiateViewControllerWithIdentifier:@"DetailedTweetStoryboard"];
像这样获取故事板而不是self.storyboard
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];// Find name of storyboard in your project plist
DetailedTweetViewController *tweetDetailedViewController = [storyboard instantiateViewControllerWithIdentifier:@"DetailedTweetStoryboard"];
您还需要从情节提要中初始化“feedViewController” 不能使用self.storyboard初始化viewController,除非调用self.storyboard的视图也已从序列图像板初始化 比如说 从初始化DetailedWeetViewController的步骤
通过故事板feedViewController。。。那么feedViewController也必须已经从情节提要中初始化了您还需要从情节提要中初始化“feedViewController” 不能使用self.storyboard初始化viewController,除非调用self.storyboard的视图也已从序列图像板初始化 比如说 从初始化DetailedWeetViewController的步骤
通过故事板feedViewController。。。那么feedViewController也必须已经从情节提要中初始化了您可以记录
self.storyboard
和tweetDetailedViewController
来检查它们是否为空值吗?它是(null)
但是为什么…是self.storyboard
还是tweetDetailedViewController
好的,您是如何初始化当前视图控制器的?具有didSelectRowAtIndexPath
方法。。。代码?@HaniIbrahim我更新了这个问题…你能记录self.storyboard
和tweetDetailedViewController
来检查它们的空值吗?这是(null)
,但是为什么…是哪一个self.storyboard
还是tweetDetailedViewController
好的,你是如何初始化当前视图控制器的?具有didSelectRowAtIndexPath
方法。。。代码?@HaniIbrahim我更新了问题…用你的故事板的名称替换“MainstryBoard”。并确保控制器故事板id为“DetailedWeetsToryBoard”谢谢,但我仍然不明白我怎么可以(alloc和init)若要访问当前视图控制器,但要从此视图控制器转到另一个视图控制器,我必须执行以下操作…将“MainstryBoard”替换为故事板的名称。并确保控制器故事板id为“DetailedTweetStoryboard”,谢谢,但我仍然不明白如何(alloc和init)要访问当前视图控制器,但要从该视图控制器转到另一个视图控制器,我必须这样做…但由于我没有使用故事板初始化feedviewcontroller,我不应该像在第一次更新中那样在没有故事板的情况下初始化另一个视图控制器吗?可以用两种方法初始化视图控制器。。。(alloc和init)或(故事板)。。。(alloc和init)不会使用故事板中的视图控制器。如果找到它,它将使用nib文件,这就是为什么会出现黑屏。。。为了通过self.storyboard使用故事板,您还必须通过故事板加载所有以前的视图,或者您可以简单地尝试wuii所说的。。。这就是分配一个新的故事板来初始化你的视图控制器谢谢!但我想知道为什么它能从上一个视图控制器推送到当前视图控制器,但我不能用alloc和Init的相同方式从这个视图控制器推送到另一个视图控制器。你确定feedViewController是从情节提要加载的吗?可能会使用一个nib文件来代替?因为我非常确定feedViewController不是从情节提要加载的,但是因为我没有使用情节提要来初始化feedViewController,我不应该像在第一次更新中那样在没有情节提要的情况下初始化其他视图控制器吗?可以用两种方法初始化视图控制器。。。(alloc和init)或(故事板)。。。(alloc和init)不会使用故事板中的视图控制器。如果找到它,它将使用nib文件,这就是为什么会出现黑屏。。。为了通过self.storyboard使用故事板,您还必须通过故事板加载所有以前的视图,或者您可以简单地尝试wuii所说的。。。这就是分配一个新的故事板来初始化你的视图控制器谢谢!但我想知道为什么它能从上一个视图控制器推送到当前视图控制器,但我不能用alloc和Init的相同方式从这个视图控制器推送到另一个视图控制器。你确定feedViewController是从情节提要加载的吗?可能会使用一个nib文件来代替?因为我很确定feedViewController不是从故事板加载的