小编iOS*_*Guy的帖子

MVC设计模式.View如何适合它?

我对模型 - 视图 - 控制器设计模式有疑问.我理解该模型包含数据.我也了解Controller(View Controllers)实现app的逻辑.例如,如果UIPicker轮选择第4行,则视图控制器可以向模型询问存储在模型阵列中的第4个对象.我很难理解"视图"是否合适.我认为该笔尖/故事板文件将被归类为"视图".但是,每个视图都需要连接一个View Controller,将所有插座连接到视图.我怎么想保持View和View Controller分开?我应该将所有插座连接到"View Class",然后在我的View Controller中引用我的"View"类来实现这些插座的逻辑吗?也许我只需要一个View和View Controller处理不同任务的例子.因为否则额外的"视图"类似乎没有意义.MVC的视图是指View类吗?我希望如何或为什么要将此View类与View Controller类分开?

model-view-controller design-patterns objective-c uiviewcontroller ios

9
推荐指数
1
解决办法
2579
查看次数

为什么WKInterfacePicker被认为是未声明的类型?

我正在使用Xcode Version 7.0 beta 3.当试图使用WKInterfacePicker时,我收到一个错误.

这是我的WKInterfaceController的代码:

import WatchKit
import Foundation


class RBWelcomeVC: WKInterfaceController {

@IBOutlet var pickerAllWorkouts: WKInterfacePicker!


override func awakeWithContext(context: AnyObject?) {
    super.awakeWithContext(context)

    // Configure interface objects here.
}

override func willActivate() {
    // This method is called when watch view controller is about to be visible to user
    super.willActivate()
}

override func didDeactivate() {
    // This method is called when watch view controller is no longer visible
    super.didDeactivate()
}

}
Run Code Online (Sandbox Code Playgroud)

注意我的IBOutlet.当我通过控制从故事板拖动创建它时.它创建了插座并立即将此错误:

 Use of undeclared type 'WKInterfacePicker'
Run Code Online (Sandbox Code Playgroud)

由于这不起作用,我尝试手动创建插座.我键入:

 @IBOutlet …
Run Code Online (Sandbox Code Playgroud)

wkinterfacecontroller watchos-2

4
推荐指数
1
解决办法
1026
查看次数

如何使用点表示法中的字符串访问属性?

查看以下代码:

@property (weak, nonatomic) UILabel *l112;
@property (weak, nonatomic) UILabel *l212:
@property (weak, nonatomic) UILabel *l312:

((RBScorecardVC *)self.presentingViewController).l112.text = @"Hello"
((RBScorecardVC *)self.presentingViewController).l212.text = @"Hello"
((RBScorecardVC *)self.presentingViewController).l312.text = @"Hello"
Run Code Online (Sandbox Code Playgroud)

请注意我如何将标签的所有文本设置为"Hello".必须有一种更有效的方法来做到这一点.我希望我能以某种方式访问​​UIlabels(l112,1212等)的名称来这样做.这有意义吗?在我的实际应用程序中,我并没有真正将所有内容设置为"Hello",而是文本是计算的结果.此外,在我的实际应用程序中,我有超过3个标签要设置(有50+)这是我的实际代码使用重复if语句来访问每个UILabel:

-(IBAction) submitScore: (id)sender
{
self.stringID = ((RBScorecardVC *)self.presentingViewController).self.giveString;

if (self.stringID isEqualToString:@"l112")
{ ((RBScorecardVC *)self.presentingViewController).l112.text = [[NSString alloc]initWithFormat:@"%d", self.accumulator];} //l112 is the name of my UILabel
else if (self.stringID is EqualToString:@"l212")
{ ((RBScorecardVC *)self.presentingViewController).l212.text = [[NSString alloc]initWithFormat:@"%d", self.accumulator];} //l212 is the name of my UILabel
}
Run Code Online (Sandbox Code Playgroud)

我希望能够像这样更有效地做到这一点:

-(IBAction) submitScore: (id)sender
 self.stringID = …
Run Code Online (Sandbox Code Playgroud)

syntax properties objective-c ios

0
推荐指数
1
解决办法
210
查看次数