Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.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
Iphone 要在选项卡栏中创建注销按钮吗_Iphone_Ios_Uitabbar - Fatal编程技术网

Iphone 要在选项卡栏中创建注销按钮吗

Iphone 要在选项卡栏中创建注销按钮吗,iphone,ios,uitabbar,Iphone,Ios,Uitabbar,我创建了一个有9个屏幕的应用程序,并在其中添加了包含4个baritem的tabbar。 现在我有两个问题- 1=>我的最后一个baritem是注销按钮,我不想为它显示视图控制器,只要用户单击此按钮,alertview就会弹出并请求注销,如果用户说是,它就会注销 2=>如何在没有添加到tabbar中的视图控制器中显示tabbar,因为我在tabbar中有9个屏幕,只有4个屏幕显示 更新 我说我的应用程序中有9个视图控制器 像 firstViewController secondViewContro

我创建了一个有9个屏幕的应用程序,并在其中添加了包含4个baritem的tabbar。 现在我有两个问题-

1=>我的最后一个baritem是注销按钮,我不想为它显示视图控制器,只要用户单击此按钮,alertview就会弹出并请求注销,如果用户说是,它就会注销

2=>如何在没有添加到tabbar中的视图控制器中显示tabbar,因为我在tabbar中有9个屏幕,只有4个屏幕显示

更新

我说我的应用程序中有9个视图控制器

firstViewController
secondViewController
thirdViewController
fourViewController
|
|
ninthViewController
但我的选项卡栏在baritem中只有四个视图控制器,它们是-

firstViewController
secondViewController
thirdViewController
fourViewController

现在,我的另一个视图控制器不显示选项卡栏。

您的第一个问题:

不要这样做,这是对选项卡栏控制器的滥用。选项卡栏控制器上的每个项目都应该是应用程序中的不同视图,而不是操作。为注销操作按钮找到合适的位置

你的第二个问题:

有几种方法可以显示不是选项卡栏控制器的主要VCs之一的视图控制器。可通过以下方式实现:

  • 显示为模式屏幕

  • 作为爆米花

更新


要显示不是选项卡栏的主VC但仍显示选项卡栏的“辅助”视图控制器,可以将该辅助VC显示为主选项卡栏VC的子viewcontroller。换言之,将次要VC的视图作为主VC视图的子视图呈现。

我不知道这是否正确,但您可以这样做

首先阅读这篇文章,展示如何显示登录和返回主页

现在在didFinishLaunchingWithOptions方法中添加此代码

UIViewController*logoutVC=[[UIViewController alloc]init]

NSArray *viewControllersArray = [[NSArray alloc] initWithObjects:firstView, secondView, thirdView,logoutVC, nil];

self.tabController = [[UITabBarController alloc] init];
[self.tabController setViewControllers:viewControllersArray animated:YES];
[self.window addSubview:self.tabController.view];
并实现了tabbar的委托方法

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    //select the index where your logout button is
    if ([tabBarController selectedIndex] == 3) {
        NSLog(@"logout");
        self.tabController.selectedViewController = fistView;  //firstview is your home screen
        //LOGOUT
        LoginViewController * vc = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
        vc.delegate = self;
        [self.tabController presentModalViewController:vc animated:NO];
    }
}

你为什么不在视图中加载AdvieView呢?@ SuffeStutt我不想加载注销的注册表,我想让它像ButoNi一样工作,认为你应该考虑改变你的设计。你不能用View作为动作。我猜他是指在一个独立于Tabar的视图中,他仍然想要显示。选项卡栏。但我必须在每个视图控制器中创建按钮。对。我尝试使用辅助VC作为第一个VC的子视图,但当我在辅助VC中触摸文本视图时,它会停止我的应用程序…这真的很好,但它只解决了第一个问题。但仍然是一个很好的答案。