- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我正在尝试使用 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
那么如何在 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/
我是一名优秀的程序员,十分优秀!