ing*_*por 4 iphone xcode delegates storyboard uitabbarcontroller
当我为带有故事板的TabBarController创建一个XCode 4 iPhone模板时,它会自动配置一个主视图控制器和一切.但AppDelegate中的Tab Bar Controller没有任何特色.我可以为它创建一个插座,并尝试将其与故事板中的Tab Bar Controller链接,但这是不可能的.有没有更好的方法来访问didFinishLaunchingWithOptions方法中的标签栏控制器,因为它已经有点连接?我想要的是标签栏控制器中的self.currentController =当前选项卡.
AppDelegate.h:
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
Run Code Online (Sandbox Code Playgroud)
AppDelegate.m:
@interface AppDelegate()
@property (nonatomic, assign) UIViewController<SubViewContainer> *currentController;
@end
@synthesize window = _window
@synthesize currentController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//I need this piece of code to equal the Tab Bar Controller current tab
self.currentController = ?
return YES;
}
//And I'm gonna use this void for some statements about the Tab Bar Controller tabs:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:
(UIViewController *)viewController
{
// with some statements
}
Run Code Online (Sandbox Code Playgroud)
Phi*_*lls 19
假设事情在故事板中按预期设置,这应该为您提供对标签栏控制器的引用didFinishLaunchingWithOptions::
NSLog(@"Root: %@", self.window.rootViewController);
UITabBarController *tabController = (UITabBarController *)self.window.rootViewController;
Run Code Online (Sandbox Code Playgroud)
通常,您可以使用当前控制器...
self.currentController = [tabController selectedViewController];
Run Code Online (Sandbox Code Playgroud)
...但是由于此方法执行时没有选择任何控制器,因此最好猜测你想要的是......
self.currentController = [[tabController viewControllers] objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11142 次 |
| 最近记录: |