gpt4 book ai didi

ios - 隐藏按钮操作不会改变问题

转载 作者:行者123 更新时间:2023-11-28 19:51:02 26 4
gpt4 key购买 nike

我试图在启动应用程序时禁用导航栏按钮,并在完成该过程(获取数据)后将其重新启用,但不幸的是它不会启用。

请问我的问题在哪里?当我将 enable 设置为 YES 并且在调试它时,我可以看到它启用了 YES

- (void)viewDidLoad {

UIImage *searchBtn = [UIImage imageNamed:@"search_icon.png"];
barButtonSearch = [[UIBarButtonItem alloc] initWithImage:[searchBtn imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] style:UIBarButtonItemStylePlain target:self action:@selector(searchButton)];

UIImage *menuBtn = [UIImage imageNamed:@"menu_icon.png"];
barButtonMenu = [[UIBarButtonItem alloc] initWithImage:[menuBtn imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] style:UIBarButtonItemStylePlain target:self action:@selector(menuButton)];

self.navigationItem.rightBarButtonItem = barButtonMenu;
self.navigationItem.leftBarButtonItem = barButtonSearch;

barButtonMenu.enabled = NO;
barButtonSearch.enabled = NO;
}

- (void)unhide{

if (!(barButtonSearch.enabled && barButtonMenu.enabled)) {

barButtonMenu.enabled = YES;
barButtonSearch.enabled = YES;
}
}

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

ViewController *theInstance = [[ViewController alloc] init];


AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.responseSerializer = [AFJSONResponseSerializer serializer];

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

_dic = (NSDictionary *)responseObject;

[theInstance unhide];

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

NSLog(@"Err");
}];

[operation start];

return YES;
}
}

最佳答案

好啦!

您正在初始化您的 ViewController,但这并没有调用您的 viewDidLoad: 方法。 viewDidLoad: 方法在您的 ViewController 被推送或呈现时被调用!那是 View 加载到内存中的时间。

因此,永远不会创建 barButtons,您也看不到它们。

因此,要么在 ViewController 的 viewDidLoad: 方法中进行网络调用

推送 ViewController 的实例,然后调用方法unhide

编辑

由于您使用的是 Storyboards 而不是从 AppDelegate 推送任何 ViewController,因此您需要使用 ViewController 的引用。

在您的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中替换它

ViewController *theInstance = (ViewController *)[(UINavigationController*)self.window.rootViewController topViewController]; 

关于ios - 隐藏按钮操作不会改变问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29206321/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com