Xcode的动态加载图形用户界面的所有视图(Xcode Dynamically loaded GUI

2019-09-28 14:07发布

我有理由新的Xcode和Objective C.

我已成功加载所有的GUI对象上动态的我的意见的..

现在我想同样的动态加载的内容重复到全部或大部分我的看法..

我在这样的主视图的方法:

-(void)loadinfo:(id)sender{
//All dynamically loaded content etc..
}

我现在有调用此方法像这样的主视图。

[self loadinfo];

所以,现在我需要知道(没有复制和粘贴的方法到所有我的看法)如何调用从主力到其他视图的方法?

我希望这一切才有意义。

编辑

我在PHP我更了解,所以如果我是做在PHP同样的事情我会做一个名为functions.php的,并包含这个文件到所有的页面..这是不是同一个概念?

Answer 1:

这个概念是从你的PHP函数找到方法不同。 在Objective C中一个与工作对象。 要共享的行为(你的PHP函数,在目标C调用的方法)对象之间,你需要的地方插槽行为到您的类层次结构。

因此,对于您的特定情况下,你将实现loadinfo在通用类,这是一个子类方法NSView ,说MyGenericView 。 无论你的view1view2班会,然后从该泛型类的子类,并继承loadinfo方法。

如果你想从实施转移loadinfo在你的基类,你可以通过做(在厂景或视图2)部分覆盖它:

- (void) loadview {
  [super loadview]; // perform the default implementation
  [self doSomethingDifferint]; // perform subclass specific stuff
}

... 要么:

- (void) loadview {
  [self doSomethingDifferint]; // perform subclass specific stuff
  [super loadview]; // perform the default implementation
}

......或者做完全覆盖:

- (void) loadview {
  [self doSomethingCompletelyDifferent]; // perform subclass specific stuff
}

只是一个侧面说明:这是很好的做法,Objective C的命名你的类和方法时要遵循驼峰匹配的标准,所以你的类是View1View2和方法是loadInfo

此外,你可能想阅读了关于通用OO原则和目标C的它的具体方面采取的语言和其功能的充分利用。



Answer 2:

你应该继承具有所有的动态加载UI内容的看法。 所以,如果你有:

@interface MyCustomView : UIViewController 
{

}

@property (strong, nonatomic) UIView *aView;

-(void)someMethod;

@end

您可以创建一个子类,将继承所有的属性,方法等:

@interface FirstView : MyCustomView 
{

}

//all properties and methods of MyCustomView are inherited

@end

这样做对任何数量的要创建视图。



文章来源: Xcode Dynamically loaded GUI for all views