新手目标C问题。我试图以编程方式从另一个视图更改视图。但我只是成功激活了tabbarcontroller中的tab键。
在我的ViewDidLoad中,我有一个条件,如果没有满足,则加载第二个视图。
是否有任何善良的灵魂可以帮助Objective-C初学者?我谷歌搜索并搜索stackoverflow的答案,但没有运气。
FirstViewController.h
@interface FirstViewController : UIViewController {
some variables
}
some @properties
FirstViewController.m
#import "FirstViewController.h"
@implementation FirstViewController
- (void)viewDidLoad
{
if(condition is met) {
[self.tabBarController setSelectedIndex:1];
}
}
在我的AppDelegate.h中
#import <UIKit/UIKit.h>
@interface otpAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {
UIWindow *window;
UITabBarController *tabBarController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
@end
AppDelegate.m
@implementation otpAppDelegate
@synthesize window;
@synthesize tabBarController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self.window addSubview:tabBarController.view];
[self.window makeKeyAndVisible];
tabBarController = [[UITabBarController alloc] init];
[tabBarController setDelegate:self];
return YES;
}
修改! 我找到了解决问题的方法。
int selectedindex = 1;
self.tabBarController.selectedIndex = selectedindex;
UIViewController *tempvc = [[self.tabBarController viewControllers] objectAtIndex:selectedindex];
[self.view removeFromSuperview];
[self.view addSubview:tempvc.view];
诀窍。
答案 0 :(得分:0)
尝试设置应用代理tabBarController
实例的索引,例如yourAppDelegate.tabBarController
答案 1 :(得分:0)
如果您使用tabBarController作为IBOutlet,则无需在您的app delegate中分配它。请从appDelegate方法中删除这些代码(application:didFinishLaunchingWithOptions)..
tabBarController = [[UITabBarController alloc] init];
[tabBarController setDelegate:self];