2013-05-05 72 views
0

我使用ECSlidingViewController与两个视图控制器。 'detail'视图在初始加载时显示,'detail'视图菜单栏上的按钮然后显示了'主'视图,这是一个UITableView,就像Path和Facebook UI一样。初始加载的UIView不是从segue

我的问题是我想在应用程序启动时加载此详细视图。然后这会将一些初始数据添加到我的核心数据数据库中,并在主视图的UITableView中显示一行。

如果我显示主视图并在菜单中选择一行,我执行segue到详细页面,然后使用prepareForSegue:sender正确加载数据。

如何仅在初始加载时在详细视图中执行任务,而不是在通过加载加载时执行任务?

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Setup the view controllers 
    self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MainTop"]; 
    self.underLeftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"]; 
} 

回答

0

尝试

- (void) awakeFromNib 
    { 
     //initialisation code here 
    } 

这时候,现场首先从已取消封存故事板文件只调用。

如果这样做没有办法,您可以使用初始化的布尔属性,在您的代码第一次运行后将其设置为TRUE。

+0

谢谢,我希望有一个稳定的解决方案,我可能从文档中错过了,以区分当UIViewController是否由segue创建。 – JMWhittaker 2013-05-08 07:55:52

+1

@JMWhittaker - 我相当确定API中没有任何东西。通过'prepareForSegue'设置一个'arriveFromSegue'标志,或者写一个自定义的Segue,它也是这样做的吗? – foundry 2013-05-08 12:51:48

+0

谢谢@他是这样的,我在文档中找不到任何东西。你的建议很好,设置一个标志将起作用。谢谢。 – JMWhittaker 2013-05-09 18:13:14

0

就能呈现母版视图模式方式,而不是segueing:

背景信息

我在故事板负载主机和详细视图第一个视图。

+0

呈现主视图在这里不是问题。它呈现良好。我想要的只是在第一次加载时运行一个方法,而不是在使用segue加载时运行。 – JMWhittaker 2013-05-05 11:28:49