正确的做法?重用相同的故事板视图和视图控制器
Posted
技术标签:
【中文标题】正确的做法?重用相同的故事板视图和视图控制器【英文标题】:Correct way of doing it? Reusing same storyboard view and view controller 【发布时间】:2016-09-22 15:50:21 【问题描述】:我正在做如下。这个想法是根据菜单按钮提供的类型传递不同的值和显示数据。
但它没有按应有的方式工作。 它只是显示首先调用哪个视图(或者在第二个按钮按下时未刷新数据显示第一个视图)。 那么正确的做法是什么呢?
if (indexPath.row == 1)
SomeViewController* v = [self.storyboard instantiateViewControllerWithIdentifier:@"storyboardCat"];
v.type=@"1";
[self showViewController:v];
[self.slidingViewController resetTopViewAnimated:YES];
if (indexPath.row == 2)
SomeViewController* v = [self.storyboard instantiateViewControllerWithIdentifier:@"storyboardCat"];
v.type=@"2";
[self showViewController:v];
[self.slidingViewController resetTopViewAnimated:YES];
编辑 - 了解更多信息 SomeViewController.h 文件
@interface SomeViewController : UIViewController
@property (nonatomic, strong) NSString *type;
@end
SomeViewController.m 文件
@implementation SomeViewController
@synthesize type;
arrayData = [NSMutableArray arrayWithArray:[CoreDataController getSomeData:type]];
//so trying to populate different values in tableview based on passed parameter to function
但是现在哪个视图首先被调用或值被传递(1 或 2),只有那些值被填充并且值不会在同时调用传递另一个值时改变(例如,当索引行是 2 时)。
【问题讨论】:
您没有提供有关SomeViewController
的任何所需详细信息。
我已编辑问题以获取更多信息。
【参考方案1】:
试试这个
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil]; //Change Main if your storyboard name is different.
SomeViewController* v = [storyboard instantiateViewControllerWithIdentifier:@"launchView"]; // launchView is the name given to the view controller in the properties as shown in below screenshot
希望对你有帮助
【讨论】:
不工作。我想我也在做同样的事情,但由于 tableview 在随后的调用中没有刷新(当一个接一个地立即完成时) 检查以确保在第一次重新加载完成后进行所有重新加载调用以上是关于正确的做法?重用相同的故事板视图和视图控制器的主要内容,如果未能解决你的问题,请参考以下文章