【问题标题】:Perform segue on viewcontroller's startup在 viewcontroller 的启动时执行 segue
【发布时间】:2012-05-09 01:49:12
【问题描述】:

我有一个登录屏幕,我想做的是检测用户是否已经登录并最终弹出一个模式。

我创建了一个自定义转场,显示没有动画的模式。

@implementation NonAnimatedSegue

-(void) perform {

    [self.sourceViewController presentModalViewController:self.destinationViewController animated:NO];

}

问题是从 viewDidLoad 或 viewWillAppear 调用这个 segue 无效。如果我从 viewDidAppear 调用它,登录屏幕会在模式打开之前闪烁一会儿。

知道如何解决这个问题吗?

【问题讨论】:

  • 它应该从 viewWillAppear 工作
  • @AnkitSrivastava 这不起作用,您会收到警告说“尝试在 viewA 上呈现 viewB,其视图不在窗口层次结构中!”
  • 您应该考虑拥有两个storyboard,一个用于登录相关流程,另一个用于正常流程。应检查appDelegate中的登录状态并相应地实例化storyboard。

标签: ios storyboard segue uistoryboard uistoryboardsegue


【解决方案1】:

我解决这个问题的方法是检查应用程序是否已完成启动并根据需要设置根视图控制器。像这样:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    /*stuff*/
    /*get the view controller from storyboard/nib*/
    [self.window setRootViewController:CorrectViewController];
}

它不会显示模式视图,而只会显示启动时的登录信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多