Hac*_*ack 62 storyboard uiviewcontroller uikit ios
我有一个iOS应用程序,我在xCode中创建为"基于视图的应用程序".我只有一个viewController,但它会自动显示,我看不到任何代码将它与我的appDelegate联系起来.我需要将数据从我的appDelegate传递到我的viewController,但不知道如何解决这个问题.
我的app delegate.h:
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) NSDictionary *queryStrings;
@end
Run Code Online (Sandbox Code Playgroud)
另外,appDidFinishLoadingWithOptions:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[[JMC sharedInstance] configureJiraConnect:@"https://cmsmech.atlassian.net/" projectKey:@"WTUPLOAD" apiKey:@"7fc060e1-a795-4135-89c6-a7e8e64c4b13"];
if ([launchOptions objectForKey:UIApplicationLaunchOptionsURLKey] != nil) {
NSURL *url = [launchOptions objectForKey: UIApplicationLaunchOptionsURLKey];
NSLog(@"url received: %@", url);
NSLog(@"query string: %@", [url query]);
NSLog(@"host: %@", [url host]);
NSLog(@"url path: %@", [url path]);
queryStrings = [self parseQueryString:[url query]];
NSLog(@"query dictionary: %@", queryStrings);
}
else {
queryStrings = [self parseQueryString:@"wtID=nil"];
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
uta*_*hak 101
你可以用以下方式访问它:
MyViewController* mainController = (MyViewController*) self.window.rootViewController;
Run Code Online (Sandbox Code Playgroud)
如果您将视图嵌套在tabviewcontroller或导航控制器后面,它将返回给您,您将需要访问其中的视图控制器
Mic*_*ann 22
如何使用优秀的老式NSNotifications从您的应用代表发送消息给任何人(例如您的视图控制器)发送需要更新的内容?或者您可以使用键值观察,以便您的视图控制器可以在您的应用程序委托中查看某些属性.
Con*_*ltz 12
由于您只有一个视图控制器,通用方式(独立于您的应用程序的设置方式):
UIViewController *vc = [[[UIApplication sharedApplication] keyWindow] rootViewController];
Run Code Online (Sandbox Code Playgroud)
小智 9
如果你想得到任何其他的UIViewController
,不仅仅是rootViewController
:
UIWindow *window=[UIApplication sharedApplication].keyWindow;
UIViewController *root = [window rootViewController];
UIStoryboard *storyboard = root.storyboard;
CustomViewController *vcc =(CustomViewController *) [storyboard instantiateViewControllerWithIdentifier:@"storyBoardID"];
Run Code Online (Sandbox Code Playgroud)
快速做到这一点,你可以从任何地方调用它,而不仅仅是appdelegate:
/// EZSwiftExtensions - Gives you the VC on top so you can easily push your popups
public var topMostVC: UIViewController? {
var presentedVC = UIApplication.sharedApplication().keyWindow?.rootViewController
while let pVC = presentedVC?.presentedViewController {
presentedVC = pVC
}
if presentedVC == nil {
print("EZSwiftExtensions Error: You don't have any views set. You may be calling them in viewDidLoad. Try viewDidAppear instead.")
}
return presentedVC
}
Run Code Online (Sandbox Code Playgroud)
它作为标准功能包含在:
https://github.com/goktugyil/EZSwiftExtensions
归档时间: |
|
查看次数: |
83478 次 |
最近记录: |