运行 AppDelegate 中的 didFinshLaunchingWithOptions 而应用程序是 运行?

Run didFinshLaunchingWithOptions in the AppDelegate while application is running?

有什么方法可以执行

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

方法,而该应用 运行 来自不同的 ViewController?

你不应该自己调用委托方法,你可以使用NSNotificationCenter

  1. 在我们的例子中,用不同的方法 (someThingInterestingHappened) 编写您要执行的代码。
  2. 通过在 defaultNotificationCenter 上调用 addObserver 将 class 注册到通知,即 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(someThingInterestingHappened:) name:@"desiredEventHappend" object:nil];
  3. Post 来自任何 class [[NSNotificationCenter defaultCenter] postNotificationName:@"desiredEventHappend" object:nil];
  4. 的通知

在您的应用委托中维护一个单独的方法来设置导航栏外观。

在您的 AppDelegate.h 文件中,声明相同的方法。

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

-(void)setNavBarAppearance;

@end

在 appDelegate.m 文件中,编写该方法的功能

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.

    [self setNavBarAppearance];
}


-(void)setNavBarAppearance {
    //Do what is required here.
}

@end

然后,在任何需要调用相同方法的地方:

#import "AppDelegate.h"

AppDelegate* appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
[appDelegate setNavBarAppearance];