在我的 DetailViewController.h 中,我声明了属性 * 类型,如下所示:
@interface DetailViewController : UIViewController
@property (strong, nonatomic) NSString *type;
@end
然后我得到了一个 ListViewController,它是一个包含 TableView 的 UIViewController。ListViewController.h 看起来像这样:
@interface ListViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
@end
在我的 ListViewController.m 中,我想尽快更改 * 类型的值我切换视图(视图切换工作正常)。
我通过添加以下内容来做到这一点:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UINavigationController * navigationController = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailController"];
DetailViewController * detailController = [[DetailViewController alloc] init];
detailController.type = @"video";
NSLog(@"Type: %@", detailController.type);
[self.navigationController pushViewController:navigationController animated:YES];
}
当我在这个块/函数的第二行放置一个断点时,我得到 detailController 里面有 * 类型。当我 NSLog 这几行后它返回“(null)”。视图已更改,但未设置类型。
我无法弄清楚我做错了什么?有人对此有解决方案或可以向我指出我们正在解释的事情吗?
因为我尝试搜索答案,但找不到任何与我的问题相同的内容,或者我使用了错误的搜索词..