gpt4 book ai didi

objective-c - iOS 重复/僵尸 View Controller 被引用

转载 作者:行者123 更新时间:2023-11-29 13:38:28 29 4
gpt4 key购买 nike

我有一个从 nib 构建的 MainWindow 类,设置如下:

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
MainViewController *mainView = [[MainViewController alloc] initWithNibName:@"MainViewController"
bundle:nil];
if(!mainView)
{
return;
}
naviController = [[UINavigationController alloc] initWithRootViewController:mainView];
[naviController setToolbarHidden:YES];
[[naviController navigationBar] setTintColor:[UIColor blackColor]];
[[naviController toolbar] setTintColor:[UIColor blackColor]];
[self.window setRootViewController:naviController];
[self.window makeKeyAndVisible];
}

这可以正常工作并正确显示 MainViewController,但是当我尝试在 MainViewController 的 TableView 中向下滚动时,它会抛出一个 EXC_BAD_ACCESS .显然 UIKit 指的是 [self.window makeKeyAndVisible]; 中内置的第二个 MainViewController 我不明白为什么它在我传入的那个上引用它initWithRootViewController:mainView.

这是两个 MainViewControllers。第一个是我初始化的,第二个是在 makeKeyAndVisible 中创建的。

enter image description here

这是第二个被称为僵尸的 MainViewController

enter image description here

关于为什么会发生这种情况有什么想法吗?

根据要求:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MainViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MainViewCell"];
int i = [indexPath row];
NSLog(@"%d\n",i);
if (cell == nil) {
// Create a temporary UIViewController to instantiate the custom cell.
UIViewController *temporaryController = [[UIViewController alloc] initWithNibName:@"MainViewCell" bundle:nil];
// Grab a pointer to the custom cell.
cell = (MainViewCell *)temporaryController.view;
// Release the temporary UIViewController.
[temporaryController release];
}
[[cell icon] setImage:[UIImage imageNamed:[[moduleXMLList objectAtIndex:i] objectForKey:@"thumbnail"]]];
[[cell title] setText:[[moduleXMLList objectAtIndex:i] objectForKey:@"title"]];
[[cell description] setText:[[moduleXMLList objectAtIndex:i] objectForKey:@"description"]];
return cell;
}

最佳答案

问题是我在使用 File's Owner 作为 MainViewController 而在 Objects 下有第二个 UIViewController。这是错误的,所以一旦我摆脱了 Object 并只使用 File's Owner,它就像一个魅力。

关于objective-c - iOS 重复/僵尸 View Controller 被引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9897703/

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