【问题标题】:Initial load of UIView not from segueUIView 的初始加载不是来自 segue
【发布时间】:2013-04-29 07:35:16
【问题描述】:

我将ECSlidingViewController 与两个视图控制器一起使用。 “详细”视图在初始加载时显示,“详细”视图菜单栏上的按钮然后显示作为 UITableView 的“主”视图,很像 Path 和 Facebook UI。

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

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

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

背景信息

我在 StoryBoard 中的第一个视图同时加载了主视图和详细视图:

- (void)viewDidLoad
{
    [super viewDidLoad];

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

【问题讨论】:

    标签: ios ios6 uiviewcontroller storyboard segue


    【解决方案1】:

    试试

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

    这仅在场景首次从情节提要文件中取消归档时调用。

    如果这不起作用,您可以使用“初始化”布尔属性,在您的代码首次运行后将其设置为 TRUE。

    【讨论】:

    • 谢谢,我希望有一个可靠的解决方案,我可能从文档中错过了一个可靠的解决方案,以区分 UIViewController 何时由 segue 创建。
    • @JMWhittaker - 我相当肯定 API 中没有任何内容。通过prepareForSegue 设置arrivedFromSegue 标志或编写一个自定义Segue 来做同样的事情?
    • 谢谢@He Was,我在文档中也找不到任何关于此的内容。你的建议很好,设置一个标志会起作用。谢谢。
    【解决方案2】:

    您可以模态显示主视图,而不是连续显示。

    【讨论】:

    • 展示主视图不是这里的问题。它呈现得很好。我想要的是仅在第一次加载时运行一个方法,而不是在使用 segue 加载时运行。
    猜你喜欢
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 2013-10-02
    • 2018-05-16
    • 2018-11-16
    • 1970-01-01
    相关资源
    最近更新 更多