Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从UIViewController中删除UIAbbarController,然后再次显示它,仍然会显示更新的旧数据_Ios_Iphone_Uiviewcontroller_Uitabbarcontroller - Fatal编程技术网

Ios 从UIViewController中删除UIAbbarController,然后再次显示它,仍然会显示更新的旧数据

Ios 从UIViewController中删除UIAbbarController,然后再次显示它,仍然会显示更新的旧数据,ios,iphone,uiviewcontroller,uitabbarcontroller,Ios,Iphone,Uiviewcontroller,Uitabbarcontroller,在我的应用程序中,我有一个UIViewController,它显示一个UIAbbarController(它有3个NavigationController作为tabBarItems),然后我从该UIViewController中关闭UIAbbarController 但当我再次显示时,旧数据仍然显示在选项卡控制器上(我的意思是导航控制器的UIViewController上显示的所有数据仍然显示)。我希望UITabBarController在再次显示时与新的一样好。怎么做 代码如下: 在AppDe

在我的应用程序中,我有一个
UIViewController
,它显示一个
UIAbbarController
(它有3个
NavigationController
作为
tabBarItems
),然后我从该
UIViewController
中关闭
UIAbbarController

但当我再次显示时,旧数据仍然显示在
选项卡控制器
上(我的意思是
导航控制器
UIViewController
上显示的所有数据仍然显示)。我希望
UITabBarController
在再次显示时与新的一样好。怎么做

代码如下: 在
AppDelegate.h
中,我创建了这个属性

@property (strong, nonatomic) UITabBarController *tabBarController;
然后,在AppDelegate.m中

self.customerCareNavController = [[UINavigationController alloc] initWithRootViewController:self.custCareVC];
    self.customerCareNavController.title = @"Customer Service";

    self.purchaseOrderNavController = [[UINavigationController alloc] initWithRootViewController:self.POController];
    self.purchaseOrderNavController.title = @"PO";

    self.accAndContactsNavController = [[UINavigationController alloc] initWithRootViewController:self.accAndContactsController];
    self.accAndContactsNavController.title = @"Accounts And Contacts";

    self.tabBarController = [[UITabBarController alloc] init];

self.tabBarController.viewControllers = [NSArray arrayWithObjects:self.customerCareNavController, self.accAndContactsNavController, self.purchaseOrderNavController, nil];

你在应用程序代理中这样做有什么原因吗?如果从另一个视图控制器显示选项卡栏控制器,则应将所有代码放在进行显示的方法中,而不为其或其任何控制器创建属性,只创建局部变量。呈现控制器将保留对它的引用,因此您不需要这样做。当您关闭它时,它及其所有内容控制器将被释放。

在退出UITabbar之前,我想所有viewcontroller和调用setNeedtoDisplay都可以!当您解除显示的控制器时,应解除分配该控制器。因为看起来你的不是,所以你必须有一个指向它的强有力的指针。您应该在创建选项卡栏控制器的地方显示代码并演示它。我已经更新了我的问题并添加了一些代码。是的,我让TabBarController变得“强大”。我该怎么办??将其声明为“弱”属性??实际上我是一名非常新的iOS开发人员,不太擅长内存管理概念..完成。。谢谢。。不过还有一个问题。。myTabBArController上的所有图像现在都消失了。@Coder123,什么图像?何时将它们添加到选项卡栏控制器。是。。但现在我已经删除了用于UITabBarItems的图像,并为UItabBar添加了图像。但是现在,我的标签栏上似乎有一条不需要的线。我的问题与中讨论的问题类似,我使用了以下代码:tabBarView=[[UIImageView alloc]initWithImage:[UIImageName:@“tab_mypeople.png”];tabBarView.frame=CGRectMake(0,-15,320,64);[tabBarController.tabBar addSubview:tabBarView];我应该换什么???我的新图像的尺寸应该是多少?我想tabBarin ios 7的高度是49点。。所以我想我的图像现在应该是320X49像素。。正确的??