Tag: iboutlet

致命错误:在Swift中展开可选值时意外发现了零

所以我试图在Swift中获取input字段的文本。 所以这就是我得到的 class ViewController: UIViewController { @IBOutlet var passwordField: UITextField! @IBOutlet var usernameField: UITextField! override func viewDidLoad() { super.viewDidLoad() //Try to log user in by default let user = usernameField.text let password = passwordField.text 这一切看起来不错(我知道我没有closures课程,我只是直接把它拉出来),当我去运行它,我得到 致命错误:意外地发现零,而解包一个可选的值(lldb) 和 (您必须在新标签中打开图片才能看到) 我用IBOutlet成功绑定了input字段,我知道这一点。 有任何想法吗?

如何find连接到特定IBOutlet的UI元素?

有什么方法可以find代码中声明的IBOutlet连接到哪个UI元素?

Objective-C iOS开发在设置variables时使用viewDidLoad或initWithCoder,为什么?

所以看来我应该在viewDidLoad设置我的成员variables – 但我很困惑,为什么在initWithCoder设置这些variables失败,因为都在程序的开始时被调用。 特别是我有一行代码: [worldView setMapType:MKMapTypeSatellite]; 其中worldView是一个IBOutlet MKMapView对象。 它在viewDidLoad下工作,但不是initWithCoder 。

UIStoryboard容器将IBOutlet附加到父ViewController

我想使用一个UITableView其中包含静态单元格与UITextField里面附加到我的LoginViewController 。 我已经在头文件中添加了与故事板中的UITextFields相对应的IBOutlets 。 不幸的是Xcode不允许UITableView静态内容,你需要使用UITableViewController 。 因此,我从故事板中分离出了UITableView ,并使用了一个ContainerView来embedded一个效果很好的UITableViewController 。 附上设置的屏幕截图。 我现在面临的问题是我无法链接UITextFields到我的LoginViewController ,你可以从我的截图中看到,我已经添加了一个Object到UITableViewController ,我已经设置到我的LoginViewController并设法将UITextFields链接到它。 但是,当主视图加载它说我的UITextFields是nil 如何将我的UITextFields链接到我的LoginViewController IBOutlets ? 编辑:如果我必须UITableViewController它看起来像我应该只使用原型单元格…任何其他的build议?

ViewController的出口视图第一个非零,然后从束加载时为零

我使用initWithNibName:bundle:从一个包中加载一个UIViewController 。 如果我在它的viewDidLoad设置了一个断点,我可以看到它的view被设置了。 在Interface Builder中查看About.xib时,我也可以看到这一点。 但是,一旦实际上第一次使用视图(根据我的应用程序的逻辑调用[self.navigationController pushViewController:viewController animated:YES] ),我得到这个错误: *终止应用程序由于未捕获的exception“NSInternalInconsistencyException”,原因:' – [UIViewController _loadViewFromNibNamed:bundle:]加载了“关于”笔尖,但没有设置视图sockets。 这也是触发viewDidLoad的调用。 所以显然在通话期间, view首先是非零(应该是),而后来显然变成了零。 如果在调用之前立即在debugging器中inputpo [viewController view] ,我会得到这个错误(这大概只是同一症状的另一个表示): 错误:执行被中断,原因:内部的ObjCexception断点(-3)。进程已经返回到expression式求值之前的状态。 我怎样才能加载和使用视图控制器结合现有的导航栏,而不会遇到这些错误? 更新如果我从故事板(不一定是我的主要故事板)而不是从XIB文件加载视图控制器,问题显然消失。

为什么Xcode为IBOutlet创build一个弱引用?

我注意到,当我在故事板内创build一个sockets,它会生成以下代码__weak IBOutlet UILabel *mLabel; 。 为什么它宣称它是一个弱指针? 据我了解,当对象被释放时,其所有成员也将被释放。 在我的大部分代码中,我宣称这些网点是强大的指针。 这会造成问题吗?

自定义InfoWindow标记谷歌地图SDK,Swift 2.0

我试图在Swift 2.0中实现这个( https://www.youtube.com/watch?v=ILiBXYscsyY)Custom InfoWindow教程。 我试图通过混合匹配Objective-C和Swift代码来做到这一点,但我一直在翻译不成功 – (UIView *) mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker { CustomInfoWindow *infoWindow = [[[NSBundle MainBundle] loadNibNamed:@"InfoWindow" owner:self options:nil] objectAtIndex:0]; infoWindow.name.text = @"Syndey Opera House"; infoWindow.address.text = @"Bennelong Point, Sydney"; infoWindow.photo.image = [UIImage imageNamed:@"SydneyOperaHouseAtNight"]; return infoWindow; } 进入Swift。 本教程的这一部分可以在video的3:07find。 我想在将本教程翻译成Swift 2.0方面有所帮助,或者如果有人知道Swift 2.0的一个很好的教程,将不胜感激。

我可以使用不同标签将多个对象连接到同一个IBOutlet吗?

在Interface Builder中的一个视图中有30个button。 每个人都有一个不同的100001和100030之间的标签。我发现很容易使用每个button相同的动作,传递每个button时的标签,并使用代码来决定加载哪个级别。 我想将所有button连接到一个IBOutlet,但是每个button都会根据用户保存的数据和button的标签加载不同的图像。 我该怎么做呢?

iOS – pipe理IBOutlets内存的最佳方法是什么?

我一直在审查苹果文档和示例代码,试图确定pipe理IBOutlets的内存的最佳方式。 我有点困惑,至less可以说。 CurrentAddress示例代码将IBOutlets声明为属性: @interface MapViewController : UIViewController <MKMapViewDelegate, MKReverseGeocoderDelegate> { MKMapView *mapView; UIBarButtonItem *getAddressButton; } @property (nonatomic, retain) IBOutlet MKMapView *mapView; @property (nonatomic, retain) IBOutlet UIBarButtonItem *getAddressButton; 大。 这些是在dealloc中发布的: – (void)dealloc { [mapView release]; [getAddressButton release]; [super dealloc]; } 现在不应该将这些属性设置为分配吗? 因为当设置保留时,IBOutlet的保留计数将会增加两次:一次是装入笔尖时,另一次是设置属性? 将这些属性设置为零而不是释放dealloc不是更好吗?

IBOutlet没有连接在awakeFromNib中

这里链接的示例代码效果很好,并允许UIScrollView在当前图像之前和之后显示具有分页和预览图像的图像: http://blog.proculo.de/archives/180-Paging-enabled-UIScrollView-With-Previews.html https://github.com/alexrepty/Paging-Enabled-UIScrollView-With-Previews 我试图把这个例子封装在一个可以重用的控件中。 所以我创build了一个PagingScrollView: @interface PagingScrollView : UIView { IBOutlet UIScrollView * scrollView; } @property (nonatomic,retain) IBOutlet UIScrollView * scrollView; @end 污垢简单的实施 – (void) awakeFromNib { [super awakeFromNib]; NSLog(@"awake from nib"); } 在PagingScrollView.xib中,我把一个包含UIScrollView和ARScrollViewEnhancer的View完全和原来的ScrollViewPagingExampleViewController xib一样。 它的文件所有者的类被设置为PagingScrollView,并且其scrollView插口被设置为子UIScrollView。 在ScrollViewPagingExampleViewController中,我只声明: IBOutlet PagingScrollView *pagingScrollView; 在IB中,我拖动View,将其类设置为PagingScrollView,并将其pagingScrollView插口连接到PagingScrollView。 在awakeFromNib中,scrollView属性为零。 我会认为,因为scrollView被连接在同一个笔尖的IB中,所以可以通过这一点。 令人困惑的是,在ScrollViewPagingExampleViewController.xib中,有一个名为scrollView的空出口。 这可能表示存在与PagingScrollView.xib中定义的不同的PagingScrollView实例。 因此,我不能用实际的子视图填充UIScrollView。 我在这里做错了什么?