我创建了两个从UIViewController类派生的MasterViewController实例
_masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController_iPhone" bundle:nil];
// second instance with same class and duplicate nib view
_favItemMasterVC = [[MasterViewController alloc] initWithNibName:@"favMasterViewController_iPhone" bundle:nil];
MasterViewController_iPhone& favMasterViewController_iPhone视图是一样的。 现在我想检查当前选择了哪个UIViewController(例如:在tabbar上)。 我怎样才能找到两个对象之间的区别?
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
if ([viewController isKindOfClass:[_favItemListMasterVC class]]
{ // it is always called in both cases}
isMemberOfClass://也无效
如何检查差异?
答案 0 :(得分:3)
不确定我是否理解你在做什么,但是如果_favItemListMasterVC和_masterViewController指向添加到UITabBar的相同VC,你可以检查它只是比较指针
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if (viewController == _favItemListMasterVC)
{
//the visible view controller is _favItemListMasterVC
}
答案 1 :(得分:2)
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if (viewController == _masterViewController)
{
}
else if (viewController == _favItemMasterVC)
{
}
}
答案 2 :(得分:1)
我认为您可以使用标签来检查哪个是哪个。 Tag是UIView的属性设置两个xib文件中的标记值。并使用代码检查标记。
答案 3 :(得分:1)
要比较对象,您还可以使用:
if([viewController isEqual:_favItemMasterVC])