gpt4 book ai didi

objective-c - UIViewController 被置空后仍保持状态

转载 作者:行者123 更新时间:2023-12-03 17:56:41 26 4
gpt4 key购买 nike

在我的应用中,我创建了一个 BookViewController 类来显示书籍页面并为其设置动画,以及一个 MainMenuViewController 类来显示用户可以阅读的一组书籍。

在后一个类中,当用户点击其中一本书时,会调用一个函数来创建一个全新的 BookViewController 实例,但由于某种原因,该实例保持其状态(即它从用户离开的页面恢复)。

如果我把它设置为零怎么会这样呢?我在这里缺少什么? (请注意,我使用的是 ARC)。

MainMenuViewController.m

@interface MainMenuViewController ()
@property (strong) BookViewController *bookViewController;
@end

@implementation MainMenuViewController
@synthesize bookViewController;

-(void)bookTapped:(UIButton *)sender{

NSString *bookTitle;

if(sender == book1button) bookTitle = @"book1";
else if(sender == book2button) bookTitle = @"book2";

bookViewController = nil;

bookViewController = [[BookViewController alloc] initWithBookTitle:bookTitle];
[self presentViewController:bookViewController animated:YES completion:nil];

}

BookViewController.h

@interface BookViewController : UIViewController
-(id)initWithBookTitle:(NSString *)bookTitle;
@end

BookViewController.m

@implementation BookViewController
-(id)initWithBookTitle:(NSString *)theBookTitle{
self = [super init];
if(self){
bookTitle = [NSString stringWithFormat:@"%@", theBookTitle];
[self setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
NSLog(@"init a BookViewController with bookTitle: %@", bookTitle);
}
return self;
}

编辑 1:每次点击一本书时,都会调用 bookTapped: ,并且控制台始终打印:

2012-08-31 16:29:51.750 AppName[25713:c07] 初始化一个带有 bookTitle: book1 的 BookViewController

因此,如果正在创建 BookViewController 的新实例,为什么它似乎会返回旧实例?

编辑2:我在 [self presentViewController:bookViewController 行之前插入了 NSLog(@"bookViewController %@",bookViewController); 。控制台输出为:

2012-08-31 16:37:41.426 Henry[25784:c07] bookViewController <BookViewController: 0x6a21540>
2012-08-31 16:38:23.321 Henry[25784:c07] bookViewController <BookViewController: 0xe425540>
2012-08-31 16:38:53.393 Henry[25784:c07] bookViewController <BookViewController: 0x6839330>

最佳答案

您的变量是在类的 @implementation 之外声明的(您正在声明全局变量)。

关于objective-c - UIViewController 被置空后仍保持状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12218065/

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