gpt4 book ai didi

objective-c - 如何在 AppDelegate 中执行 Segue?

转载 作者:技术小花猫 更新时间:2023-10-29 10:46:21 26 4
gpt4 key购买 nike

我正在尝试使用 Storyboard 在 IOS 5.1 上完成一个应用程序。基本上我正在做一个保管箱应用程序。由于我使用的是 Dropbox SDK,因此在 AppDelegate.m 中处理了指向 Dropbox 的链接。用户可以选择能够从 session 中取消链接并在不同的 View Controller 中再次链接。因此,每次用户链接和未链接的应用程序都必须将 View 从 Appdelegate 切换到未连接到 rootviewcontroller 的 View Controller

在原始 Dropbox 的示例中,Dropbox 像下面的代码一样处理转换

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
if ([[DBSession sharedSession] handleOpenURL:url]) {
if ([[DBSession sharedSession] isLinked]) {
[navigationController pushViewController:rootViewController.photoViewController animated:YES];
}
return YES;
}

return NO;
}

但是我正在使用带导航 Controller 的 Storyboard 并且以下任何方法都不起作用我将方法放在评论中。

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
if ([[DBSession sharedSession] handleOpenURL:url]) {
if ([[DBSession sharedSession] isLinked]) {

NSLog(@"App linked successfully!");
// At this point you can start making API calls

/*UIViewController *viewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:NULL] instantiateViewControllerWithIdentifier:@"MeetingViewController"];
[self.navigationController pushViewController:viewController animated:YES]; */

//[self performSegueWithIdentifier:@"xxxx" sender:self];

/* LoginDropboxViewController *loginController=[[LoginDropboxViewController alloc] initWithNibName:@"LoginDropbox" bundle:nil];
[navigationController pushViewController:loginController animated:YES]; */

}
return YES;
}
// Add whatever other url handling code your app requires here
return NO;
}

这是应用程序的 Storyboard enter image description here

那么如何在 AppDelegate.h 中切换 View 呢?

注意:如果我添加一个 segue 并命名该 segue 让我们说 goToMeeting [ self performSegueWithIdentifier:@"goToMeeting"sender:self];

我得到的错误是:No Visible @interface for 'AppDelegate' declares the selector performSegueWithIdentifier:sender

最佳答案

如果您考虑手动推送 View 而不是 segueperform,则以下代码很可能适合您

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
if ([[DBSession sharedSession] handleOpenURL:url]) {
if ([[DBSession sharedSession] isLinked]) {

NSLog(@"App linked successfully!");
// At this point you can start making API calls

//push view manually
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
LoginDropboxViewController *ivc = [storyboard instantiateViewControllerWithIdentifier:@"LoginDropbox"];
[(UINavigationController*)self.window.rootViewController pushViewController:ivc animated:NO];



}
return YES;
}
// Add whatever other url handling code your app requires here
return NO;
}

关于objective-c - 如何在 AppDelegate 中执行 Segue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12305636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com