2014-10-04 37 views
-2

我是新来的iOS,我想了解平台是如何工作的,所以如果我提出任何愚蠢的问题,请原谅。继承的看法

我的问题是基于目前的问题在这个岗位:
Inheritance on view controller Objective c

到目前为止,我明白我可以继承控制器,但我可以继承一个看法?我认为答案是否定的。如果是这样的话,解决以下问题的最佳方法是什么?

我有一张卡匹配游戏。现在,我必须扩大比赛才能拥有类似的纸牌游戏,但有不同的套牌和规则。

因此,我想重新使用代码,并有一个主控制器和2个继承控制器,重新定义甲板的创建。现在我需要有两种不同的观点,因为这两款游戏的牌数不同。那么,做到这一点的最佳方式是什么?我是否必须将所有控件从一个视图复制到另一个视图并修改需要的内容?

+1

你显然有一些重大的误解。 UIView是一个类。 UIViewController是一个类。 UIButton是一个类,它是UIControl的子类,它是UIView的子类。类继承定义了类的功能以及它与其他类相似的功能。继承不会*定义某些视图放置在其他视图中以构建更复杂的视图结构的方式。 – 2014-10-04 01:49:03

+0

(一个典型的iPhone屏幕上可能有50个视图,每个标签是一个单独的视图,每个图像是一个单独的视图,每个按钮是一个单独的视图,并有“容器”视图,其中包含其他视图。在屏幕上看到(很多你不知道)是一个视图。) – 2014-10-04 01:52:42

+0

感谢您的解释,不知道平台,以及我想确保没有机制共享视图的一部分。因此,如果我想制作一个与另一个相似的视图,唯一的方法就是复制该视图以创建一个新视图...是否正确? – TZAU 2014-10-04 04:02:20

回答

0

你可以继承一个视图就好了。当您添加一个新文件并导入该子类时,只需创建一个UIView的子类。

关于你的问题,我觉得最好的方法是将UIViewController的子类叫做CardsController,它具有deck属性,并且可以根据一组定义的规则来管理卡片的显示和更改由你。然后,继续为您的两个游戏中的每个游戏查看控制器的子类,因为它们都使用卡片。

+0

我不知道我理解你的答案......(请纠正我,如果我错了)我在我的Main.storyboard和两个不同的控制器为2个不同的卡卡,一个继承其他... 问题是我只有一个视图,并且在Xcode的Custom Class右边选项卡中,我只能选择一个控制器...是这样吗? 那么你是否建议视图只有一个,但是我应该控制控制器中按钮/元素的可见性? – TZAU 2014-10-04 01:29:02

0

你也可以继承任何类型的对象,控制器,视图,无论 例如:

@interface MyCustomView : UIView 

@end 

如果你的两个不同的视图共享很多的代码,那么你不应该单独创建它们。他们应该有一个共同的方法,他们都从这个通用的uiview继承

+0

好吧,也许我得到这个错误,现在变得困惑,但不是在控制器中的代码,而不是视图?视图不只有布局对象吗?我有一个拥有所有代码的主控制器,然后我创建了一个新的控制器,它从主控制器继承并覆盖了一些抽象方法......现在我不明白下一步如何对我的继承有不同的视图控制器... – TZAU 2014-10-04 01:35:40

+0

当你创建一个'UIViewController'时,它有一个视图,但是你可以添加Subviews或者以任何你想要的方式修改它。 您可以创建一个新类,它从UIView继承,并将此新视图添加为主UIViewController视图的子视图 – saky 2014-10-04 14:45:59