加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – 标签栏控制器(故事板模板)和AppDelegate

发布时间:2020-12-14 18:59:31 所属栏目:百科 来源:网络整理
导读:当我为带有故事板的TabBarController创建一个XCode 4 iPhone模板时,它会自动配置一个主视图控制器和一切.但AppDelegate中的Tab Bar Controller没有任何特色.我可以为它创建一个插座,并尝试将其与故事板中的Tab Bar Controller链接,但这是不可能的.有没有更好
当我为带有故事板的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

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
}

解决方法

假设事情按照预期在故事板中设置,这应该为您提供对didFinishLaunchingWithOptions ::中标签栏控制器的引用

NSLog(@"Root: %@",self.window.rootViewController);
UITabBarController *tabController = (UITabBarController *)self.window.rootViewController;

通常,您可以使用当前控制器…

self.currentController = [tabController selectedViewController];

…但是由于此方法执行时没有选择任何控制器,因此最好猜测你想要的是……

self.currentController = [[tabController viewControllers] objectAtIndex:0];

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读