找到基本视图控制器名称

时间:2015-10-21 14:08:39

标签: ios objective-c xcode uiviewcontroller

我在SO和其他网站上搜索了这个,但没有找到任何有用的内容

我拥有的是...... 一个基类说TOPViewController.h/.m 在这个类中,我创建了我的控件,我在所有其他视图中使用此类,通过创建此类的对象。

说, ViewController1ViewController2ViewController3是我的其他观点,我在所有这些观看中使用TOPViewController

现在我的当前视图是ViewController2,这是可见的。我从ViewController1跳到ViewController2

现在在TOPViewController我将如何知道哪些是我当前的viewcontroller可见。

所有视图控制器都将TOPViewController对象添加为[self.view addSubview:topViewObj];

以下是在所有视图中添加我的TOPViewController的代码,

topBarViewObj = [[TopBarViewController alloc]init];
    topBarViewObj.view.backgroundColor = [UIColor whiteColor];
    topBarViewObj.view.frame = CGRectMake(0, 0, 320, 50);
    topBarViewObj.titleLable.text = @"TEST";
    [self.view sendSubviewToBack:topBarViewObj.view];
    [self.view addSubview:topBarViewObj.view];

请指导我。 提前谢谢..

3 个答案:

答案 0 :(得分:2)

如果您想知道根据您的UIViewController可见的最高UINavigationController哪一个(以及UIViewController堆栈上推送的最后一个UINavigationController

self.navigationController.topViewController;

答案 1 :(得分:0)

如果您使用的是UINavigationControoler

你可以获得baseViewController

baseViewControoer = [self.navigationController.viewControllers firstObject]

但如果您没有使用以下行

[self.navigationController pushViewController: animated:];

你不会得到以上结果

答案 2 :(得分:0)

当您将TopBarViewController的视图与addSubView添加到视图中时,您只需通过调用

来尝试获取父类
select * 
from table as W 
where w.effective_date >= (
    //get 2nd max effective date 
    select max(a.effective_date) from table as a 
    where a.person = w.person
    and a.effective_date Not = (
        //get max of effective_date per person
        select max(x.effective_date) from table as x    
        where x.person = a.person)
    )

它可能对你有用。让我知道。